first pass at new drawing caching mechanism