First two examples working.  Cleaned up class names to be easier to understand