This was partially applied to simulation but simulation is a bit of a mess and has a lot of duplicated code.