configuration and refactoring