57004836 enhance simulation engine

@axelstudios can you give this a quick visual once over to verify that I'm not touching any code outside of the ISOModel and SimulationEngine (ie, not affecting anyone other than myself). Then I'll perform the merge.