Parse in module

Don't review yet.
You are right, but I'm not there yet. It's going to be an incremental change because I also have to figure out how to reject things in the new implementation. But yes, I will have to eliminate lines 187-224.