Messaging update

close #1
close #2
close #3
close #5