added abstract plotter