Cache Execution evaluations

closes #1055 
I'm still not completely clear on why we need to keep two copies of the caches (getting used to thinking about Futures), but do you think the duplication will hurt performance-wise since these are vals and thus they are separate copies?