CPSC260 project