add subscription callback