changed the name of Printer to CompositePrinter