UBC CPSC 310 Project