Term project for CMPUT 391