added zoom out caching, progression and canceling