Diffusion of adsorbates on metal surfaces