refactor round1