fixed if-else bug