rename GeneralProduct -> IdealProduct