transition optimisations