refactor and add new syncer tests