more control on decoding