informer, waiting. refactoring