fleshed out Generators some more, added caches