abstracted running the sim to its own object