added caching system so Google doesn't get mad [fixes #1]