Move drawing logic to drawers

Close #1106.
why not just say `this.pathSelection = area.append`