types of patterns