refactored Printable to ReflectPrint