refactored all solutions to date