expanded the message channel implementation