Refactor fully functional PrinterDemo