refactor.
option: draw manually
option: width, height