messge functionality finished (hopefully)