Added an Endpoint system

Need to add some tests to this.