decoding implemented