refactoring datacontracts