pattern engine