Adding classes to avoid tricksy globals.
Class polishing ...
Added printer and category methods, finished model methods.