protected IComponentCallable <T1> RegisterCallable <T, T1>(Action <T, T1> method) where T : class
        {
            var callable = new ImplementedComponentCallable <T, T1>(method);

            callable.SyncComponents(this.Components);
            _knownCallablesForSync.Add(callable);
            return(callable);
        }
        protected IComponentCallable <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> RegisterCallable <T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>(Action <T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> method) where T : class
        {
            var callable = new ImplementedComponentCallable <T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>(method);

            callable.SyncComponents(this.Components);
            _knownCallablesForSync.Add(callable);
            return(callable);
        }