ifs factorized