TODO: rename Factory, add API(long-term), check product_add