performance improvement: draw elements only when changed (WIP)