double-direction communication done...but thread locker...