add more features and change some patterns