implement product