fix  use block in order to callback