public static function instance() { $caller = get_called_class(); if (!isset(self::$__instances[$caller])) { self::$__instances[$caller] = new $caller(); self::$__instances[$caller]->class_init(); } return self::$__instances[$caller]; }