product patterns