Added solutions
Updated
Refactored and added test