refactor more printers