Include documentation of class layout
Created a sensible class hierarchy