implement sync feature