update and refactor uber