better solution, mimic time.After()