Added an Endpoint system

Need to add some tests to this.

/cc @blabaere 
This is actually incorrect. Right now it reads: `'b` outlives the lifetime of `'a`.