add abstract declarations
delegate all logging calls to one print method