Refact if ... else ...