also I think we should sync this method to make sure this is never shared across threads and then double released? You might assert on the threads as well here or is that ok? Do we still have the problem here were we keep it around across search phases?