basic simulation loop