General method now calculates all factors