implemented Codec except DefaultCodec