redo plots
cut down on object use a bit
abstract temp objects a bit to decouple code