generic sync system