[API review]Move drawing logic to drawers

Close #1106.
can we make this more general so we wont need to overwrite it on a per-plot basis