fix callback bug, add data checker