Start setting SelfLink

I've gotta run so no promises that this will pass travis. This will make building events much easier.
Hrm, I don't like this.  This seems precisely the reason that multiple return values were invented.  If we think the interfaces should be joined into a single interface, let's do that, if we think that they're separate, let's not do this.