Project 4 for UBC cs314