Final project for CPSC362