added a base endpoint class so we can start serializing/deserializing directly and also programmatically get the endpoints from /api now