fix if logic