Move drawing logic to drawers

Close #1106.
datasets name is not apt as 
datasets !== this.datasets()