PDIO-145 Major refactoring to support iterated offline evaluations