This is a course project for course EECS 311