Revert "Revert "Factorize""

This reverts commit 24bdaec35a12b9cd40cded49a79f51d402b01d08.