Surface caching

Summary