DRYing models: product