2 level error correction