Printers refactoring

Common code moved to abstract printer