project 3 for CSC254