solo challenge and refactor