add DataContract functionality