refactor timer
fix broadcast issuse
guess