more DRYing