patern recognize
nothing modified