level 2 finished
refactoring