Revert "Revert "Caching Fanouts""

This reverts commit d8873ed58894954dbda04ab130303149ced0c934. (reverted from commit b818229b13df0ae091a3fc7ef55551e366646463)