variable range hopping