rearrange the code.  remove duplicate if