Final project for 6.872