added TransitionKit state machine