fix if-then-else bug