fully working.  One NPE needs to be fixed.  Printing needs needs to be formatted better