new printer: add test, refactor