add serialization interfaces