Patterns is devided to three types.