CSE506-final-proj