component serialization & deserialization