Refactor draw() again