Add caching and update other features.