CPSC 471 project