Since we dropped the attempt to make a generic module out of it, would be good if the classes were either namespaced, or at least renamed so they don't clash with the implementation that we'll need to do in fulltextsearch.