event loop is now partially "non-blocking"