Refactor: use Strategy Pattern for drawing

Add multiple states. When state changes, draw method changes as well.
Refactor: drawing method name