IK support

It still has some bugs, but, in general, it works