CPSC 491 project