My code for 18-341 at CMU.