better link implementation