Exercise 3 solution, initial commit