example of a complete program?
start factoring, still too tightly coupled