rudimentary json config support -- not async but that also means large changes don't need to be made