public static function instance( $tpl = null, $module = null, $params = null, $className = null )
    {
        $object = null;
        if ( is_null( $className ) )
        {
            $ini = eZINI::instance( 'ezcomments.ini' );
            $className = $ini->variable( 'ManagerClasses', 'SubscriptionManagerClass' );
        }

        if ( !is_null( self::$instance ) )
        {
            $object = self::$instance;
        }
        else
        {
            $object = new $className();
            $object->tpl = $tpl;
            $object->module = $module;
            $object->params = $params;
        }
        return $object;
    }