Generalize endpoint extension