Desingularization of function fields