tiny bit DRYer