Abstraction and Custom Endpoints