unify and abstract away a bunch of stuff between plotting and drawing actions