CSE306 project 1