rework retransmission stuff