allow asymmetric transitionFunction