C++ final project for 6.S096 IAP 2014 at MIT