changed `link` method to update existing link objects if any exist.