tool pattern