state_step is already modeled, with a cleaner interface: transform, on_init and on_end methods