add validatations and callbacks for Product object