completed patternModel