implement send/receive message system