patterns ...