remove nonblocking; changed protocol