This is a class final project for EECS498 at UMich Winter 2014