extract waiting in a common trait