Added on demand caching, removed default caching
Added graphs
Added multiprocessing