state_step can be use as listener