added do_direct_message()