Project 3 Complete Solution