More component refactoring