Extracted CoffeeShop's implementation details into separate source files
Moved some reporting code out of CoffeeShop and into the view
Pass in a listener to do the reporting
Move all reporting to one place