After callback should only run once per task