Move drawing logic to drawers

Close #1106.
?  Why bypass the parent?