Added projective pactorization
TODO: tests