Complete rewrite of Config. Allow for subclassing.