Refactor solutions and tests into individual files
Solution 153 from aceeca1