Adding LinkFactory<T> to remove the need for magic strings