fix callback bug