almost done restructuring, still need to rewrite spanRecurse, or whatever shall be the thing that follows it; then test