patternFactory finished