a design pattern becomes a solution to a design problem