implementing on_start_step_behavior and on_end_behavior instead of on_end on_start behaviors arrays