diff --git a/ragconnect.base/src/main/jastadd/RagConnect.relast b/ragconnect.base/src/main/jastadd/RagConnect.relast
index 3728d411587de9d543fce2e8b71b37083d0e68b4..4301c70e77435e46fb131b093e9009577109d680 100644
--- a/ragconnect.base/src/main/jastadd/RagConnect.relast
+++ b/ragconnect.base/src/main/jastadd/RagConnect.relast
@@ -13,7 +13,7 @@ rel TokenEndpointDefinition.Token <-> TokenComponent.TokenEndpointDefinition*;
 ReceiveTokenEndpointDefinition : TokenEndpointDefinition;
 SendTokenEndpointDefinition : TokenEndpointDefinition;
 
-abstract TypeEndpointDefinition : EndpointDefinition ::= <UseList:boolean> ;
+abstract TypeEndpointDefinition : EndpointDefinition ::= <IndexBasedListAccess:boolean> ;
 rel TypeEndpointDefinition.Type <-> TypeComponent.TypeEndpointDefinition*;
 
 ReceiveTypeEndpointDefinition : TypeEndpointDefinition ::= <WithAdd:boolean>;
diff --git a/ragconnect.base/src/main/jastadd/intermediate/Generation.jadd b/ragconnect.base/src/main/jastadd/intermediate/Generation.jadd
index b58b9670abd0abb26db113c3fee6f98033e3f4f7..f4045d7aab8c587970e9645f3cb13e36cb617db4 100644
--- a/ragconnect.base/src/main/jastadd/intermediate/Generation.jadd
+++ b/ragconnect.base/src/main/jastadd/intermediate/Generation.jadd
@@ -124,10 +124,10 @@ aspect AttributesForMustache {
 
   // --- MTypeEndpointDefinition ---
   syn boolean MTypeEndpointDefinition.isWithAdd() = endpointDef().isReceiveTypeEndpointDefinition() ? endpointDef().asReceiveTypeEndpointDefinition().getWithAdd() : false;
-  syn boolean MTypeEndpointDefinition.isUseList() = endpointDef().asTypeEndpointDefinition().getUseList();
+  syn boolean MTypeEndpointDefinition.isIndexBasedListAccess() = endpointDef().asTypeEndpointDefinition().getIndexBasedListAccess();
   eq MTypeEndpointDefinition.getterMethod() = "get" + typeName() + (typeIsList() ? "List" : "");
   eq MTypeEndpointDefinition.parentTypeName() = type().containingTypeDecl().getName();
-  eq MTypeEndpointDefinition.entityName() = typeName() + (isUseList() ? "List" : "");
+  eq MTypeEndpointDefinition.entityName() = typeName() + (typeIsList() && !isIndexBasedListAccess() ? "List" : "");
 
   // --- MInnerMappingDefinition ---
   inh boolean MInnerMappingDefinition.isLast();
@@ -398,7 +398,7 @@ aspect GrammarGeneration {
 
   syn TokenComponent EndpointDefinition.getTokenToCreate() = null;
   eq TypeEndpointDefinition.getTokenToCreate() {
-    if (typeIsList() && !getUseList()) {
+    if (typeIsList() && getIndexBasedListAccess()) {
       TokenComponent result = new TokenComponent();
       result.setName(idTokenName());
       result.setNTA(false);
diff --git a/ragconnect.base/src/main/jastadd/intermediate/Mappings.jrag b/ragconnect.base/src/main/jastadd/intermediate/Mappings.jrag
index 3a7fce51404e43be679d7b8829127099fd78b683..99824ff53c40ce77b643358949cff2b6b386bed7 100644
--- a/ragconnect.base/src/main/jastadd/intermediate/Mappings.jrag
+++ b/ragconnect.base/src/main/jastadd/intermediate/Mappings.jrag
@@ -220,7 +220,7 @@ aspect Mappings {
   eq TypeEndpointDefinition.suitableReceiveDefaultMapping() {
     try {
       TypeDecl typeDecl = program().resolveTypeDecl(targetTypeName());
-      return typeIsList() && getUseList() ? ragconnect().defaultBytesToListTreeMapping(typeDecl.getName()) : ragconnect().defaultBytesToTreeMapping(typeDecl.getName());
+      return typeIsList() && !getIndexBasedListAccess() ? ragconnect().defaultBytesToListTreeMapping(typeDecl.getName()) : ragconnect().defaultBytesToTreeMapping(typeDecl.getName());
     } catch (Exception ignore) {}
     return super.suitableReceiveDefaultMapping();
   }
@@ -256,7 +256,7 @@ aspect Mappings {
   eq TypeEndpointDefinition.suitableSendDefaultMapping() {
     try {
       TypeDecl typeDecl = program().resolveTypeDecl(targetTypeName());
-      return typeIsList() && getUseList() ? ragconnect().defaultListTreeToBytesMapping() : ragconnect().defaultTreeToBytesMapping(typeDecl.getName());
+      return typeIsList() && !getIndexBasedListAccess() ? ragconnect().defaultListTreeToBytesMapping() : ragconnect().defaultTreeToBytesMapping(typeDecl.getName());
     } catch (Exception ignore) {}
     return super.suitableSendDefaultMapping();
   }
diff --git a/ragconnect.base/src/main/jastadd/parser/ParserRewrites.jrag b/ragconnect.base/src/main/jastadd/parser/ParserRewrites.jrag
index 214fec41df4de5a2bcf56288b892cda8d7aea068..faaf35ad579259148d06fc7d2f8975f740f2730b 100644
--- a/ragconnect.base/src/main/jastadd/parser/ParserRewrites.jrag
+++ b/ragconnect.base/src/main/jastadd/parser/ParserRewrites.jrag
@@ -4,9 +4,7 @@ aspect ParserRewrites {
     to SendTypeEndpointDefinition {
       SendTypeEndpointDefinition result = new SendTypeEndpointDefinition();
       result.applyFrom(this);
-      if (this.getIndexed()) {
-        result.setUseList(true);
-      }
+      result.setIndexBasedListAccess(this.getIndexed());
       return result;
     }
   }
@@ -16,12 +14,8 @@ aspect ParserRewrites {
     to ReceiveTypeEndpointDefinition {
       ReceiveTypeEndpointDefinition result = new ReceiveTypeEndpointDefinition();
       result.applyFrom(this);
-      if (this.getWithAdd()) {
-        result.setWithAdd(true);
-      }
-      if (this.getIndexed()) {
-        result.setUseList(true);
-      }
+      result.setWithAdd(this.getWithAdd());
+      result.setIndexBasedListAccess(this.getIndexed());
       return result;
     }
   }
diff --git a/ragconnect.base/src/main/resources/receiveDefinition.mustache b/ragconnect.base/src/main/resources/receiveDefinition.mustache
index c29eff1372604f7e302deaeaebb3bb0b83d21827..2fd0ea21f1dc6072941b99d6bfa6238f1c0f4f90 100644
--- a/ragconnect.base/src/main/resources/receiveDefinition.mustache
+++ b/ragconnect.base/src/main/resources/receiveDefinition.mustache
@@ -1,5 +1,5 @@
 {{#typeIsList}}
-{{^UseList}}
+{{#IndexBasedListAccess}}
 private int {{parentTypeName}}.{{resolveInListMethodName}}(String topic) {
   for (int index = 0; index < getNum{{entityName}}(); index++) {
     if (get{{entityName}}(index).get{{idTokenName}}().equals(topic)) {
@@ -8,7 +8,7 @@ private int {{parentTypeName}}.{{resolveInListMethodName}}(String topic) {
   }
   return -1;
 }
-{{/UseList}}
+{{/IndexBasedListAccess}}
 {{/typeIsList}}
 
 /**
@@ -17,13 +17,13 @@ private int {{parentTypeName}}.{{resolveInListMethodName}}(String topic) {
  * New values are appended to the end of the list.
 {{/isWithAdd}}{{/typeIsList}}
  * @param {{connectParameterName}} string describing protocol and path as an URI
-{{#typeIsList}}{{^UseList}}{{^isWithAdd}}
+{{#typeIsList}}{{#IndexBasedListAccess}}{{^isWithAdd}}
  * @param index index of node in list to connect (the list is expected to have enough elements)
-{{/isWithAdd}}{{/UseList}}{{/typeIsList}}
+{{/isWithAdd}}{{/IndexBasedListAccess}}{{/typeIsList}}
  * @return true if connect was successful, false otherwise
  * @throws java.io.IOException if connect failed
  */
-public boolean {{parentTypeName}}.{{connectMethod}}(String {{connectParameterName}}{{#typeIsList}}{{^UseList}}{{^isWithAdd}}, int index{{/isWithAdd}}{{/UseList}}{{/typeIsList}}) throws java.io.IOException {
+public boolean {{parentTypeName}}.{{connectMethod}}(String {{connectParameterName}}{{#typeIsList}}{{#IndexBasedListAccess}}{{^isWithAdd}}, int index{{/isWithAdd}}{{/IndexBasedListAccess}}{{/typeIsList}}) throws java.io.IOException {
   java.util.function.BiConsumer<String, byte[]> consumer = (topic, message) -> {
     {{> mappingApplication}}
 {{#loggingEnabledForReads}}
@@ -32,15 +32,15 @@ public boolean {{parentTypeName}}.{{connectMethod}}(String {{connectParameterNam
 {{#isTypeEndpointDefinition}}
     {{lastResult}}.treeResolveAll();
  {{#typeIsList}}
-  {{#UseList}}
+  {{^IndexBasedListAccess}}
    {{#isWithAdd}}
     {{getterMethod}}().addAll({{lastResult}});
    {{/isWithAdd}}
    {{^isWithAdd}}
     set{{entityName}}({{lastResult}});
    {{/isWithAdd}}
-  {{/UseList}}
-  {{^UseList}}
+  {{/IndexBasedListAccess}}
+  {{#IndexBasedListAccess}}
     {{lastResult}}.set{{idTokenName}}(topic);
    {{#isWithAdd}}
     {{getterMethod}}().add({{lastResult}});
@@ -48,7 +48,7 @@ public boolean {{parentTypeName}}.{{connectMethod}}(String {{connectParameterNam
    {{^isWithAdd}}
     set{{entityName}}({{lastResult}}, index);
    {{/isWithAdd}}
-  {{/UseList}}
+  {{/IndexBasedListAccess}}
  {{/typeIsList}}
  {{^typeIsList}}
     set{{entityName}}({{lastResult}});
@@ -61,7 +61,7 @@ public boolean {{parentTypeName}}.{{connectMethod}}(String {{connectParameterNam
   return {{internalConnectMethod}}({{connectParameterName}}, consumer);
 }
 
-{{#typeIsList}}{{^UseList}}{{^isWithAdd}}
+{{#typeIsList}}{{#IndexBasedListAccess}}{{^isWithAdd}}
 /**
  * Connects the receive endpoint {{entityName}} using a "wildcard" URI (if supported by the chosen protocol).
  * @param {{connectParameterName}} string describing protocol and path as an URI
@@ -84,7 +84,7 @@ public boolean {{parentTypeName}}.{{connectMethod}}(String {{connectParameterNam
   };
   return {{internalConnectMethod}}({{connectParameterName}}, consumer);
 }
-{{/isWithAdd}}{{/UseList}}{{/typeIsList}}
+{{/isWithAdd}}{{/IndexBasedListAccess}}{{/typeIsList}}
 
 private boolean {{parentTypeName}}.{{internalConnectMethod}}(String {{connectParameterName}},
     java.util.function.BiConsumer<String, byte[]> consumer) throws java.io.IOException {
diff --git a/ragconnect.tests/src/test/01-input/list/Test.connect b/ragconnect.tests/src/test/01-input/list/Test.connect
index 7720e95233ef2eec1073d60cb6936205c8b1410c..f069ad8e63d78be4ad79da978148927fe81e3595 100644
--- a/ragconnect.tests/src/test/01-input/list/Test.connect
+++ b/ragconnect.tests/src/test/01-input/list/Test.connect
@@ -1,6 +1,6 @@
-send indexed SenderRoot.A ;
-send indexed SenderRoot.SingleA ;
-receive indexed ReceiverRoot.A ;
-receive indexed ReceiverRoot.FromSingleA ;
-receive indexed with add ReceiverRoot.WithAddFromA ;
-receive indexed with add ReceiverRoot.WithAddFromSingleA ;
+send SenderRoot.A ;
+send SenderRoot.SingleA ;
+receive ReceiverRoot.A ;
+receive ReceiverRoot.FromSingleA ;
+receive with add ReceiverRoot.WithAddFromA ;
+receive with add ReceiverRoot.WithAddFromSingleA ;
diff --git a/ragconnect.tests/src/test/01-input/singleList/README.md b/ragconnect.tests/src/test/01-input/singleList/README.md
index 6a76bb4d8457d1f246edaeb96d6d72048ef4ced1..5d18043d85e96ec4b44cc6a2c3803b8f215d2edc 100644
--- a/ragconnect.tests/src/test/01-input/singleList/README.md
+++ b/ragconnect.tests/src/test/01-input/singleList/README.md
@@ -18,7 +18,7 @@ SenderRoot                         ReceiverRoot
 
 ## Computation
 
-A _n_ = Input _n_ + 1, e.g., A1 = Input1 + 1
+A _n_ = Input _n_ + _n_, e.g., A1 = Input1 + 1 and A3 = Input3 + 3
 
 ## Execution-Trace (SendInitialValue)
 
diff --git a/ragconnect.tests/src/test/01-input/singleList/Test.connect b/ragconnect.tests/src/test/01-input/singleList/Test.connect
index 8876730fda2ae27dc8fb886dec2bdba08a6ecf31..d4f5dec01667765e0e6e4604c502589b036d5440 100644
--- a/ragconnect.tests/src/test/01-input/singleList/Test.connect
+++ b/ragconnect.tests/src/test/01-input/singleList/Test.connect
@@ -4,10 +4,10 @@ send SenderRoot.A3 ;
 send SenderRoot.A4 ;
 send SenderRoot.InOutput using IntToA ;
 
-receive ReceiverRoot.A ;
-receive ReceiverRoot.UsingWildcardA ;
-receive with add ReceiverRoot.WithAddA ;
-receive with add ReceiverRoot.UsingWildcardWithAddA ;
+receive indexed ReceiverRoot.A ;
+receive indexed ReceiverRoot.UsingWildcardA ;
+receive indexed with add ReceiverRoot.WithAddA ;
+receive indexed with add ReceiverRoot.UsingWildcardWithAddA ;
 
 IntToA maps int i to A {:
     return new A().setID(i);