make dataservice generic