This is a project for 6.858/ 2013 Fall. Author: Po-An Tsai, Daniel Grier, Adam Sealfon and Arturs Backurs