Project for Stanford's CS193p, winter 2013 class