Component refactoring