parallel implementation of the find_2_factors functions; lots of interface changes;