CPSC526 Project