public bool Inspect <T, V>(DataEvent <T, V> eevent) where T : StateMachine <T> { var target = eevent.CastAs <DataEvent <TStateMachine, V> >(); Func <StateMachineEvent <TStateMachine> > factory = () => new StateMachineEvent <TStateMachine, V>(target, typeof(V)); StateMachineEvent <TStateMachine> sagaEvent = _events.Retrieve(target, factory); sagaEvent.AddState(_currentState); return(true); }