refactoring the config api to be less intertwined with the plugin, creating initial version of async event watcher