messenger implementation