add xml marshalling