more product & class functions