A method of receiving a message over a wireless communications network, the method comprising: receiving a first redundancy version of the message that has a predetermined number of bit positions, wherein the first redundancy version includes a first subset of systematic bits and a first subset of parity bits; generating a first redundancy version puncturing sequence based on a first puncturing algorithm and a first parameterized swap value, wherein the first parameterized swap value is determined based on a used transmission protocol and corresponds to a partitioning of the systematic bits between the first redundancy version and another redundancy version; identifying the first subset of the systematic bits using the first redundancy version puncturing sequence; identifying the first subset of parity bits, wherein bit positions of the first redundancy version that are not identified as the first subset of systematic bits are identified as the first subset of the parity bits; decoding the first subset of the systematic and the parity bits to produce a first estimate of the message based on a Turbo code; receiving a second redundancy version of the message that has a predetermined number of bit positions, wherein the second redundancy version includes a second subset of systematic bits and a second subset of parity bits; generating a second redundancy version puncturing sequence based on a second puncturing algorithm; identifying the second subset of systematic bits using the second redundancy version puncturing sequence, wherein the identified second subset of systematic bits is populated by systematic bits that are not included in the first subset of the systematic bits until all systematic bits are included in at least one of the first redundancy version and second redundancy version; identifying the second subset of parity bits, wherein bit positions of the second redundancy version that are not identified as the second subset of systematic bits are identified as the second subset of the parity bits; combining the first and second subset of systematic bits and the first and second subset of parity bits, to generate a combined subset of systematic bits that includes all of the systematic bits corresponding to the message; and decoding the combined subsets of systematic and parity bits to produce a second estimate of the message based on the Turbo code. receiving a first redundancy version of the message that has a predetermined number of bit positions, wherein the first redundancy version includes a first subset of systematic bits and a first subset of parity bits; generating a first redundancy version puncturing sequence based on a first puncturing algorithm and a first parameterized swap value, wherein the first parameterized swap value is determined based on a used transmission protocol and corresponds to a partitioning of the systematic bits between the first redundancy version and another redundancy version; identifying the first subset of the systematic bits using the first redundancy version puncturing sequence; identifying the first subset of parity bits, wherein bit positions of the first redundancy version that are not identified as the first subset of systematic bits are identified as the first subset of the parity bits; decoding the first subset of the systematic and the parity bits to produce a first estimate of the message based on a Turbo code; receiving a second redundancy version of the message that has a predetermined number of bit positions, wherein the second redundancy version includes a second subset of systematic bits and a second subset of parity bits; generating a second redundancy version puncturing sequence based on a second puncturing algorithm; identifying the second subset of systematic bits using the second redundancy version puncturing sequence, wherein the identified second subset of systematic bits is populated by systematic bits that are not included in the first subset of the systematic bits until all systematic bits are included in at least one of the first redundancy version and second redundancy version; identifying the second subset of parity bits, wherein bit positions of the second redundancy version that are not identified as the second subset of systematic bits are identified as the second subset of the parity bits; combining the first and second subset of systematic bits and the first and second subset of parity bits, to generate a combined subset of systematic bits that includes all of the systematic bits corresponding to the message; and decoding the combined subsets of systematic and parity bits to produce a second estimate of the message based on the Turbo code.