updated to use EGOCache, improved API