Adding on-demand color caching
Merge branch 'on-demand-cache'