utilise _.memoize()