Simplify the interface and reduce complexity

Got a little ahead of myself there. This simplifies Endpoint's interface, no more storing representation data, this is left up to the user.