CPSC351 Project 3