minor optimisation on transitions