Working on creating a better configuration system, learning from sphinx's methods