[ci skip] - DRY first pass