Component refactor