DRYing up the model