more refactoring: added worker event