public void register(Object owner, Object toRegister, Class<?>... classes)
    {
        if (toRegister instanceof ArgumentReader)
        {
            readers.register(owner, (ArgumentReader)toRegister, classes);
        }

        if (toRegister instanceof DefaultValue)
        {
            defaults.register(owner, (DefaultValue)toRegister, classes);
        }

        if (toRegister instanceof Completer)
        {
            completers.register(owner, (Completer)toRegister, classes);
        }

        if (toRegister instanceof ContextValue)
        {
            contexts.register(owner, (ContextValue)toRegister, classes);
        }
    }