add query module, search
Make Query.QV unhashable