Modules, external factories, guava optionals strategy, logging tweeks

Let me know what you think, just cleaning it up.