added more caching parts (Steven)