Move drawing logic to drawers

Close #1106.
[minor] whitespace is a little wacky here