Render refactor (with couple of fixes)

What if we have something similar to the dirty flag and check it in `draw()`?