refactoring
create upper_endpoint