This wrapper lives in a seperate module and class so that possible processing of arguments can be done before the config dictionary gets passed to the compiler.