Problems 1 and 2 refactored
Fixed solution for problem 2