fixed callback repeat