if-else nightmare again