Refactor and isolate responsibilities for configuration management (issue #11)