factorization added