Adding async support
Change FromCache to return an IList instead of IEnumerable