ComponentFactoty refactoring
1