Generalizing the design of data products