Final project for CSPP 52553