self.recv returns nothing at times, breaks everything