add graph printer
various changes