Feature/factorization