add DataContract support