So we call `on_between_handle` twice? One time in the behavior and one time in the protocol? Is it intended?