refactor round1, round2 and round3