should this be else if? Won't it crash if expression is null?