reimplemented messaging