avoid callback double mess