introduce TransitionType enumeration