Reducing code duplication by identifying fresh domain abstractions