added custom marshalling module