Separates the data transfer logic from the behaviour.
There is an issue with the data transfer network where the events don't get polled properly anymore. I see the event is pushed to the pending_events queue but it never makes it to the poll function.
If you add a log in the try_send_message function (data_transfer/network.rs) you can see the length of the queue increments but when logging in the poll function it is still 0. No idea what's happening.
Separates the data transfer logic from the behaviour.