product implementation