Factor out TransitionCollection