expanded the link struct to encompass almost all values associated with the link