refactor solution
refactor solution