rewrote the cache class and created a factory system for the executors