abstract endpoint with variable foo