This probably needs to be called `waiter`, since it's really unclear what it does