UMICH eecs 484 project 4 implementation.