add can_transition? and cant_transition? methods