Error correcting (see ref. 9), as opposed to error detecting, algorithms are beyond the scope of this proposal, as are non-systematic codes for either error detection or correction. Systematic codes are those, such as the 1's complement checksum, that require no change to the data when applied to a message. Simply appending a checksum to a file is systematic, as is appending parity or other check bits to each byte or record of the data without otherwise modifying the data bits. Codes that are not systematic involve recoding the individual data bits in some fashion (see the discussion of product codes in ref. 11, for example).