selective caching
better progress reporting