Moved the expression code into its own module.
Moved more stuff inside structs that use it.
Moved more code around to better locations.