Improvements, in order of urgency: Factor out print method from PrintableObject to ObjectPrinter::print to get rid of a need to be a child of ns object Factor out check method (...)