product theory