Add additional methods to support optional parameters
Add serialization