More refactoring into separate components.