Product generator

Product generator for #30