adding some awesome caching to keep it speedy