What is the formal definition of an endpoint and what are they used for?