Implemented drawing cache; not yet optimized