Introduced a Builder and started soft refactor of configuration stuff

There's lots to be done, but this is a start.  Tests are passing and the UI works as expected