[Evgeny, Jason] messenger module is refactored into reusable class