added datacontract attribute