refactor challenge