pre: introduced IPattern