rt_epochs = RtEpochs(rt_client, ...)
rt_client.send_data(rt_epochs, ...)

seems weird. Why does rt_client needs to pass rt_epochs to send_data?