Move drawing logic to drawers

Close #1106.
agree, let's do `this.getAnimator()` be the default rather than empty string.