printers as objects instead of dictionaries