You've got your phone app from which you schedule when you need a car to get you from point A to point B. The car arrives when you have it scheduled (assuming you hit the affirmative when the alert came to ask if you still needed it that day) and takes you to your destination. It then falls back into the matrix ready for anybody else that might need a ride.
These cars would be fully electric, so when reaching their mileage limit, they simply head back to a high speed charging station.
Now, the high demand times of 8 AM and 5 PM would tax the system, but Uber's got that figured out with pricing. People would adjust accordingly.
No awkward interactions with a driver, no tipping, no gas stops, etc. The car is simply there when you need it and onto somebody else when you don't.