Taxi completely re-written; correct answer