huge refactor of configuration options