add Encode()