Further refactoring.