better decoding