general patterns