fix callback signature