added bitmap caching