Move drawing logic to drawers

Close #1106.
Spacing on if that tslint shouldve caught