functional (tho still slow) knot invariant