address most of @tschaub's review comments, use dot notation where possible still needs to be done, and I have some questions on the _expression reader still