Created a Simulation interface and two implementations