Fix some timing issues and add a step signal
Now there is a step signal, there's no need for the argument to update()