completed 10 bonus initial solution and refactoring