Implemented multiple levels of caching in order to increase performance (primarily in Scenario)
Backup before changing the algorithm