cutting down Factory by creating a addComponentsGetterSetter method which all component attrs will use