updated with product*service