change product constructor