cache TryGet() can be generic
to save the caller a cast and to supply the cache with a type