Cleaned up the design a bit.