customized serialization