Encode, decode, reader, writer