Search revamp

I know you are trying to save room but this misses the point.
That receive is very important. Without it we have a race condition. The searches underneath will block forever once they do return. I need that to come out in the code. By hiding it, this gets overlooked.

Also I didn't think Go would let you put that statement inside this other statement like this, cool.