new method and patterns