add SetPatternGenerator function