Moved trait MessagePublisher to own file