Refactoring: added utility + messenger