added initial and refactored solutions