Refactored.  Used data instead of own caching system.  Various improvements.