Loader settings builder

I've tried to ensure I've not broken backwards compat - all tests pass; the only tests that required changing were the ones which used mocks.