fix animate without core.async