component2
refactoring