Move drawing logic to drawers

Close #1106.
`forEach` not `map`