refactor to sync all data