Final project for EECS493 of Winter 2014 @ University of Michigan.