Refactoring Transitions into a provider for them self
merger