keep code DRY