- large refactoring: removing all traces of the global configuration object
- excessive use of builder pattern
- TODO: cleanup, documentation