configuration refactor