don't assume != 2 -> == 0