moar mutexes around comm api. because more mutexes are always better