component and label products on factory method pattern