diff --git a/src/apps/structure-info/model.ts b/src/apps/structure-info/model.ts
index 77e0263c238a9ae58d11d1a14fa8016ecb1b69a2..da5d663a848d5a312df3ba1f3f2b253331eb2dc8 100644
--- a/src/apps/structure-info/model.ts
+++ b/src/apps/structure-info/model.ts
@@ -87,7 +87,7 @@ export function printLinks(structure: Structure, showIntra: boolean, showInter:
 
     if (showInter) {
         console.log('\nInter Unit Links\n=============');
-        const links = structure.links;
+        const links = structure.interUnitBonds;
         for (const unit of structure.units) {
             if (!Unit.isAtomic(unit)) continue;
 
diff --git a/src/mol-model/structure/query/queries/filters.ts b/src/mol-model/structure/query/queries/filters.ts
index ad053fa6c94fac25eb3db770e31bef303b0c4d14..9194feeb92d4538011ad1998bcfb2345a0dc1176 100644
--- a/src/mol-model/structure/query/queries/filters.ts
+++ b/src/mol-model/structure/query/queries/filters.ts
@@ -238,7 +238,7 @@ function checkConnected(ctx: IsConnectedToCtx, structure: Structure) {
     const { queryCtx, input, target, disjunct } = ctx;
     const atomicLink = queryCtx.atomicLink;
 
-    const interLinks = input.links;
+    const interLinks = input.interUnitBonds;
     for (const unit of structure.units) {
         if (!Unit.isAtomic(unit)) continue;
 
diff --git a/src/mol-model/structure/query/queries/generators.ts b/src/mol-model/structure/query/queries/generators.ts
index 74fe040c9bcee35d9e72da97de9b1bad1094345b..7aaba0ab3231795bcf938a25be289f4110ffb22c 100644
--- a/src/mol-model/structure/query/queries/generators.ts
+++ b/src/mol-model/structure/query/queries/generators.ts
@@ -280,7 +280,7 @@ export function linkedAtomicPairs(linkTest?: QueryPredicate): StructureQuery {
     return function query_linkedAtomicPairs(ctx) {
         const structure = ctx.inputStructure;
 
-        const interLinks = structure.links;
+        const interLinks = structure.interUnitBonds;
         // Note: each link is called twice, that's why we need the unique builder.
         const ret = StructureSelection.UniqueBuilder(ctx.inputStructure);
 
diff --git a/src/mol-model/structure/query/queries/modifiers.ts b/src/mol-model/structure/query/queries/modifiers.ts
index 553a92ee98f0e68ad8a6ac184c85c983e0d6d794..38b862ae2edd5d54734a0b1a07725cf1a87779f7 100644
--- a/src/mol-model/structure/query/queries/modifiers.ts
+++ b/src/mol-model/structure/query/queries/modifiers.ts
@@ -332,7 +332,7 @@ function includeConnectedStep(ctx: QueryContext, wholeResidues: boolean, structu
 
 function expandConnected(ctx: QueryContext, structure: Structure) {
     const inputStructure = ctx.inputStructure;
-    const interLinks = inputStructure.links;
+    const interLinks = inputStructure.interUnitBonds;
     const builder = new StructureUniqueSubsetBuilder(inputStructure);
 
     // Note: each link is visited twice so that link.atom-a and link.atom-b both get the "swapped values"
diff --git a/src/mol-model/structure/structure/carbohydrates/compute.ts b/src/mol-model/structure/structure/carbohydrates/compute.ts
index edf106ffd05cf2553a45458a693d8d0a44251416..e2adb40049acf1c4d4b8eb8479ad47fef28b968b 100644
--- a/src/mol-model/structure/structure/carbohydrates/compute.ts
+++ b/src/mol-model/structure/structure/carbohydrates/compute.ts
@@ -276,7 +276,7 @@ export function computeCarbohydrates(structure: Structure): Carbohydrates {
         const unit = structure.units[i]
         if (!Unit.isAtomic(unit)) continue
 
-        structure.links.getLinkedUnits(unit).forEach(pairBonds => {
+        structure.interUnitBonds.getLinkedUnits(unit).forEach(pairBonds => {
             pairBonds.linkedElementIndices.forEach(indexA => {
                 pairBonds.getBonds(indexA).forEach(bondInfo => {
                     const { unitA, unitB } = pairBonds
diff --git a/src/mol-model/structure/structure/structure.ts b/src/mol-model/structure/structure/structure.ts
index b024cc88c7ea85b4cb7db245ba3f8b17ba82c28a..68425c7eb4d97ab2e3b7d6aec59eee90ca08af38 100644
--- a/src/mol-model/structure/structure/structure.ts
+++ b/src/mol-model/structure/structure/structure.ts
@@ -40,7 +40,7 @@ class Structure {
     private _props: {
         parent?: Structure,
         lookup3d?: StructureLookup3D,
-        links?: InterUnitBonds,
+        interUnitBonds?: InterUnitBonds,
         crossLinkRestraints?: PairRestraints<CrossLinkRestraint>,
         unitSymmetryGroups?: ReadonlyArray<Unit.SymmetryGroup>,
         unitSymmetryGroupsIndexMap?: IntMap<number>,
@@ -200,10 +200,10 @@ class Structure {
         return this._props.lookup3d;
     }
 
-    get links() {
-        if (this._props.links) return this._props.links;
-        this._props.links = computeInterUnitBonds(this);
-        return this._props.links;
+    get interUnitBonds() {
+        if (this._props.interUnitBonds) return this._props.interUnitBonds;
+        this._props.interUnitBonds = computeInterUnitBonds(this);
+        return this._props.interUnitBonds;
     }
 
     get crossLinkRestraints() {
diff --git a/src/mol-model/structure/structure/unit/links.ts b/src/mol-model/structure/structure/unit/links.ts
index 12e2830c1ad6c07604d467ed5acd0dbc629482c1..bd12a137685d8961f49e1f6494bea0ab605894ba 100644
--- a/src/mol-model/structure/structure/unit/links.ts
+++ b/src/mol-model/structure/structure/unit/links.ts
@@ -123,7 +123,7 @@ namespace Link {
             if (idx < 0) return LinkType.create(LinkType.Flag.None);
             return LinkType.create(links.edgeProps.flags[idx]);
         } else {
-            const bond = structure.links.getBondFromLocation(link);
+            const bond = structure.interUnitBonds.getBondFromLocation(link);
             if (bond) return LinkType.create(bond.flag);
             return LinkType.create(LinkType.Flag.None);
         }
@@ -136,7 +136,7 @@ namespace Link {
             if (idx < 0) return 0;
             return links.edgeProps.order[idx];
         } else {
-            const bond = structure.links.getBondFromLocation(link);
+            const bond = structure.interUnitBonds.getBondFromLocation(link);
             if (bond) return bond.order;
             return 0;
         }
diff --git a/src/mol-repr/structure/visual/util/link.ts b/src/mol-repr/structure/visual/util/link.ts
index bcd3b7a5640dc1e6b067c0ee7a454a9ee0e263f4..5bed0a7e09d1c7a24a400f0c7f9dfe8fc684ed18 100644
--- a/src/mol-repr/structure/visual/util/link.ts
+++ b/src/mol-repr/structure/visual/util/link.ts
@@ -142,11 +142,11 @@ export namespace LinkIterator {
     }
 
     export function fromStructure(structure: Structure): LocationIterator {
-        const groupCount = structure.links.bondCount
+        const groupCount = structure.interUnitBonds.bondCount
         const instanceCount = 1
         const location = Link.Location()
         const getLocation = (groupIndex: number) => {
-            const bond = structure.links.bonds[groupIndex]
+            const bond = structure.interUnitBonds.bonds[groupIndex]
             location.aUnit = bond.unitA
             location.aIndex = bond.indexA as StructureElement.UnitIndex
             location.bUnit = bond.unitB
diff --git a/src/perf-tests/structure.ts b/src/perf-tests/structure.ts
index 1b619cced938a6fd9a3bbba5f77cb39ba0131f1b..fce1462906cd0290131e972b6a7a63b63fbc2c59 100644
--- a/src/perf-tests/structure.ts
+++ b/src/perf-tests/structure.ts
@@ -375,7 +375,7 @@ export namespace PropertyAccess {
     export async function runLinks() {
         const { structures } = await readCIF('e:/test/quick/3j3q_full.bcif');
         console.time('links');
-        structures[0].links
+        structures[0].interUnitBonds
         console.timeEnd('links');
     }