add caching to related object similar to datastream caching