Made some design changes that Aaron suggested and made some of my own too.