An overview of patterns