avoid duplicated callback