[API review]Move drawing logic to drawers

Close #1106.
can this live in the drawer