product constructor added