Initial Project 3 solution