Background and refactoring