add encoder and simplify the decoder's call for `.slice`