implement MessageSender, MessageSenderImpl and these entities