Configuration abstraction. Makes it easier to switch to a new config format. and easier to develop plugins. Related to #13.