add callback to product