Simulation constructor