infrastructure needed for sync