rename future accumulate and friends
FNCache as superclass rather than protocol
allow futures to hold nil
cache resource and references