adding caching / conditional requests