move transition caching inside the transition module