implemented basic list decoding