change renderFast to renderWithCachedData to make purpose easier to understand