CPSC 310 project