Refactored generic sync using transitionable