adding print spool abstraction