Modify a patern much of function