Puzzle 4

Pull req. from puzzle_4 branch.