Resource would be the parent of Product, and adding an actual implementation for each resource would be done on an ad-hoc basis. I like it.