More refactoring to clean up the Print object API