new vp tree implementation