Merge branch 'cache' (early part)