avoid redesign reinterpretation abstraction or structural enhancement