wip -- factoring