diff --git a/eraser-base/src/main/jastadd/Item.jrag b/eraser-base/src/main/jastadd/Item.jrag
index 0ff309b6723e9c7ddfd15e7442cbaf25403ca417..94ebdce1bc189ccbfa73b767ccacd9488936fc5c 100644
--- a/eraser-base/src/main/jastadd/Item.jrag
+++ b/eraser-base/src/main/jastadd/Item.jrag
@@ -305,7 +305,7 @@ aspect ItemHandling {
         logger.catching(e);
       }
     }
-    if (this.getLastChanged().checkStateProcessingTime(relevantItemPerformance())) {
+    if (this.getLastChanged().checkStateProcessingTime(relevantFrequencySetting())) {
       this.getLastChanged().afterStateChangeProcessed();
       getItemObserver().apply();
     }
diff --git a/eraser-base/src/main/jastadd/LastChanged.jrag b/eraser-base/src/main/jastadd/LastChanged.jrag
index 1650747439d0e15cc8a8d52d1db27437d802c2fd..e79bfe7c8c394154f78307ca629ff64ddfd4eb2f 100644
--- a/eraser-base/src/main/jastadd/LastChanged.jrag
+++ b/eraser-base/src/main/jastadd/LastChanged.jrag
@@ -3,11 +3,11 @@ aspect LastChanged {
         this.setValue(Instant.now());
     }
 
-    public boolean LastChanged.checkStateProcessingTime(ItemPerformance itemPerformance) {
-        if (itemPerformance==null) {
+    public boolean LastChanged.checkStateProcessingTime(FrequencySetting FrequencySetting) {
+        if (FrequencySetting==null) {
             return true;
         }
-        double frequency = itemPerformance.getEventProcessingFrequency();
+        double frequency = FrequencySetting.getEventProcessingFrequency();
         Instant lastStateChange = this.getValue();
         if (lastStateChange==null) {
             return true;
diff --git a/eraser-base/src/main/jastadd/Navigation.jrag b/eraser-base/src/main/jastadd/Navigation.jrag
index 13f9e2e9a3183877fff418f9701283a976e004c3..984e1029e1aa7817396d6676f7772d9bc824d1ba 100644
--- a/eraser-base/src/main/jastadd/Navigation.jrag
+++ b/eraser-base/src/main/jastadd/Navigation.jrag
@@ -19,36 +19,36 @@ aspect Navigation {
   eq SmartHomeEntityModel.getGroup().enclosingGroup() = null;
   eq SmartHomeEntityModel.getActivityItem().enclosingGroup() = null;
 
-  //--- relevantItemPerformance ---
-  syn ItemPerformance Group.relevantItemPerformance() {
+  //--- relevantFrequencySetting ---
+  syn FrequencySetting Group.relevantFrequencySetting() {
     // first, use value defined on group itself, if any
-    if (this.hasItemPerformance()) {
-      return this.getItemPerformance();
+    if (this.hasFrequencySetting()) {
+      return this.getFrequencySetting();
     }
 
     // recursively use enclosing group and use value from there, if any
     Group parent = enclosingGroup();
     if (parent != null) {
-      return parent.relevantItemPerformance();
+      return parent.relevantFrequencySetting();
     }
 
-    // if top-level group without ItemPerformance
+    // if top-level group without FrequencySetting
     return null;
 
   }
-  syn ItemPerformance Item.relevantItemPerformance() {
+  syn FrequencySetting Item.relevantFrequencySetting() {
     // first, use value defined on item itself, if any
-    if (this.hasItemPerformance()) {
-      return this.getItemPerformance();
+    if (this.hasFrequencySetting()) {
+      return this.getFrequencySetting();
     }
 
     // use enclosing group and use value from there, if any
     Group parent = enclosingGroup();
     if (parent != null) {
-      return parent.relevantItemPerformance();
+      return parent.relevantFrequencySetting();
     }
 
-    // if top-level item without ItemPerformance
+    // if top-level item without FrequencySetting
     return null;
   }
 
@@ -98,5 +98,5 @@ aspect Navigation {
   eq Root.getRule().getRoot() = this;
   eq Root.getUser().getRoot() = this;
   eq Root.getLocation().getRoot() = this;
-  eq Root.getItemPerformance().getRoot() = this;
+  eq Root.getFrequencySetting().getRoot() = this;
 }
diff --git a/eraser-base/src/main/jastadd/Resolving.jrag b/eraser-base/src/main/jastadd/Resolving.jrag
index 5c8df0bd0176e860fefcb5d278d037d7848fab9c..2d3a99f76bb63228bf41c315c9c9a86a768653cd 100644
--- a/eraser-base/src/main/jastadd/Resolving.jrag
+++ b/eraser-base/src/main/jastadd/Resolving.jrag
@@ -98,8 +98,8 @@ aspect Resolving {
     return java.util.Optional.empty();
   }
 
-  syn java.util.Optional<ItemPerformance> Root.resolveItemPerformance(String performanceId) {
-    for (ItemPerformance performance : getItemPerformanceList()) {
+  syn java.util.Optional<FrequencySetting> Root.resolveFrequencySetting(String performanceId) {
+    for (FrequencySetting performance : getFrequencySettingList()) {
       if (performance.getLabel().equals(performanceId)) {
         return java.util.Optional.of(performance);
       }
@@ -112,8 +112,8 @@ aspect Resolving {
     return getRoot().getSmartHomeEntityModel().resolveItem(id).orElseThrow(() -> new RuntimeException("Item '" + id + "' not found!"));
   }
 
-  refine RefResolverStubs eq ASTNode.globallyResolveItemPerformanceByToken(String id) {
-    return getRoot().resolveItemPerformance(id).orElseThrow(() -> new RuntimeException("ItemPerformance '" + id + "' not found!"));
+  refine RefResolverStubs eq ASTNode.globallyResolveFrequencySettingByToken(String id) {
+    return getRoot().resolveFrequencySetting(id).orElseThrow(() -> new RuntimeException("FrequencySetting '" + id + "' not found!"));
   }
 
 }
diff --git a/eraser-base/src/main/jastadd/Rules.relast b/eraser-base/src/main/jastadd/Rules.relast
index e695d9250bf890d80657b027aee7ecde1dd57343..e6c3ab0138742149407d3a6279a958c2cc551ee4 100644
--- a/eraser-base/src/main/jastadd/Rules.relast
+++ b/eraser-base/src/main/jastadd/Rules.relast
@@ -30,6 +30,6 @@ MultiplyDoubleToStateAction : SetStateAction ::= <Multiplier:double> ;
 ItemObserver ::= ;
 rel ItemObserver.TriggeredRule* <-> Rule.Observer* ;
 
-ItemPerformance : LabelledModelElement ::= <EventProcessingFrequency:double> ;
+FrequencySetting : LabelledModelElement ::= <EventProcessingFrequency:double> ;
 StateSyncGroup : Rule ;
 rel StateSyncGroup.TargetItem* -> Item;
diff --git a/eraser-base/src/main/jastadd/eraser.flex b/eraser-base/src/main/jastadd/eraser.flex
index 9429a1d71e0fe280348664115bbcfa2103cb61b8..e4cfe915255ab55930cb364caad83c201804f8cd 100644
--- a/eraser-base/src/main/jastadd/eraser.flex
+++ b/eraser-base/src/main/jastadd/eraser.flex
@@ -87,7 +87,7 @@ Comment = "//" [^\n\r]+
 "incoming"     { return sym(Terminals.INCOMING); }
 "items"        { return sym(Terminals.ITEMS); }
 "itemType"     { return sym(Terminals.ITEM_TYPE); }
-"ItemPerformance" { return sym(Terminals.ITEM_PERFORMANCE); }
+"FrequencySetting" { return sym(Terminals.ITEM_PERFORMANCE); }
 "performance" { return sym(Terminals.PERFORMANCE); }
 "procFreq" { return sym(Terminals.PROCESS_FREQUENCY); }
 "label"        { return sym(Terminals.LABEL); }
diff --git a/eraser-base/src/main/jastadd/eraser.parser b/eraser-base/src/main/jastadd/eraser.parser
index a5aa61240c0c0eba0daec6286ebadafb9af68291..97ec4615b85b42f411a41d13b7e7d41dac050ae9 100644
--- a/eraser-base/src/main/jastadd/eraser.parser
+++ b/eraser-base/src/main/jastadd/eraser.parser
@@ -41,7 +41,7 @@ Root goal =
   |  influx_root.ir goal.r              {: r.setInfluxRoot(ir); return r; :}
   |  machine_learning_root.ml goal.r    {: r.setMachineLearningRoot(ml); return r; :}
   |  rule.rule goal.r                   {: r.addRule(rule); return r; :}
-  |  item_performance.ip goal.r         {: r.addItemPerformance(ip); return r; :}
+  |  item_performance.ip goal.r         {: r.addFrequencySetting(ip); return r; :}
   |  thing.t                            {: return eph.createRoot(t); :}
   |  item.i                             {: return eph.createRoot(); :}
   |  group.g                            {: return eph.createRoot(g); :}
@@ -137,14 +137,14 @@ Item item_body =
   |  STATE EQUALS TEXT.n item_body.i    {: i.setStateFromString(n); return i; :}
   |  TOPIC EQUALS TEXT.n item_body.i    {: return eph.setTopic(i, n); :}
   |  CATEGORY EQUALS TEXT.n item_body.i {: return eph.setCategory(i, n); :}
-  |  PERFORMANCE EQUALS item_performance_ref.ip item_body.i           {: i.setItemPerformance(ip); return i; :}
+  |  PERFORMANCE EQUALS item_performance_ref.ip item_body.i           {: i.setFrequencySetting(ip); return i; :}
   |  META_DATA EQUALS string_map.md item_body.i
     {: return eph.setMetaData(i, md); :}
   |                                     {: return eph.createItem(); :}
   ;
 
 Item item_ref = TEXT.n {: return Item.createRef(n); :};
-ItemPerformance item_performance_ref = TEXT.n {: return ItemPerformance.createRef(n); :};
+FrequencySetting item_performance_ref = TEXT.n {: return FrequencySetting.createRef(n); :};
 
 Group group =
      GROUP COLON group_body.gb SEMICOLON    {: return gb; :}
@@ -160,7 +160,7 @@ Group group_body =
   |  AGGREGATION EQUALS TEXT.n group_body.g           {: return eph.setSimpleAggregationFunction(g, n); :}
   |  AGGREGATION EQUALS TEXT.n round_string_list.params group_body.g
     {: return eph.setParameterizedAggregationFunction(g, n, params); :}
-  |  PERFORMANCE EQUALS item_performance_ref.ip group_body.g           {: g.setItemPerformance(ip); return g; :}
+  |  PERFORMANCE EQUALS item_performance_ref.ip group_body.g           {: g.setFrequencySetting(ip); return g; :}
   |                                                   {: return new Group(); :}
   ;
 
@@ -369,13 +369,13 @@ IntegerKeyMap integer_map_body =
     :}
   ;
 
-ItemPerformance item_performance =
+FrequencySetting item_performance =
     ITEM_PERFORMANCE COLON item_performance_body.ipb SEMICOLON   {: return ipb; :}
   ;
 
-// ItemPerformance: id="" procFreq="" persFreq="";
-ItemPerformance item_performance_body =
+// FrequencySetting: id="" procFreq="" persFreq="";
+FrequencySetting item_performance_body =
      ID EQUALS TEXT.n item_performance_body.ip                  {: return eph.setID(ip, n); :}
   |  PROCESS_FREQUENCY EQUALS TEXT.n item_performance_body.ip        {: ip.setEventProcessingFrequency(Double.parseDouble(n)); return ip; :}
-  |                                                   {: return new ItemPerformance(); :}
+  |                                                   {: return new FrequencySetting(); :}
   ;
diff --git a/eraser-base/src/main/jastadd/main.relast b/eraser-base/src/main/jastadd/main.relast
index 1ef8ccf811e8fed4976a088972822b398daf6235..e12d23dc7185d244d079e3aa5d712a4290c8a2f4 100644
--- a/eraser-base/src/main/jastadd/main.relast
+++ b/eraser-base/src/main/jastadd/main.relast
@@ -1,5 +1,5 @@
 // ----------------    Main    ------------------------------
-Root ::= SmartHomeEntityModel User* MqttRoot InfluxRoot MachineLearningRoot Rule* Location* ItemPerformance*;
+Root ::= SmartHomeEntityModel User* MqttRoot InfluxRoot MachineLearningRoot Rule* Location* FrequencySetting*;
 
 // ----------------    Users   ------------------------------
 User : LabelledModelElement ;
diff --git a/eraser-base/src/main/jastadd/shem.relast b/eraser-base/src/main/jastadd/shem.relast
index 0361ff590dcfe06193665503a71ffde82c307c1d..62cb25506245a5f7d04dcea483cfa11c07d1d179 100644
--- a/eraser-base/src/main/jastadd/shem.relast
+++ b/eraser-base/src/main/jastadd/shem.relast
@@ -28,7 +28,7 @@ ParameterDefaultValue ::= <Value:String> ;
 
 abstract Item : LabelledModelElement ::= <_fetched_data:boolean> MetaData:ItemMetaData* /ItemObserver/ /LastChanged/;
 rel Item.Category? -> ItemCategory ;
-rel Item.ItemPerformance? -> ItemPerformance ;
+rel Item.FrequencySetting? -> FrequencySetting ;
 
 abstract ItemWithBooleanState : Item ::= <_state:boolean> ;
 abstract ItemWithStringState : Item ::= <_state:String> ;
@@ -55,7 +55,7 @@ LastChanged ::= <Value:Instant> ;
 
 
 Group : LabelledModelElement ::= Group* Item* [AggregationFunction:GroupAggregationFunction] ;
-rel Group.ItemPerformance? -> ItemPerformance ;
+rel Group.FrequencySetting? -> FrequencySetting ;
 
 abstract GroupAggregationFunction ;
 SimpleGroupAggregationFunction : GroupAggregationFunction ::= <FunctionName:SimpleGroupAggregationFunctionName> ;
diff --git a/eraser-base/src/main/java/de/tudresden/inf/st/eraser/parser/EraserParserHelper.java b/eraser-base/src/main/java/de/tudresden/inf/st/eraser/parser/EraserParserHelper.java
index 820c5be0b4d273309d4a12a34561689d246afc6c..32be358baf48a7cd2af133d0fe3e1a3dca97aa02 100644
--- a/eraser-base/src/main/java/de/tudresden/inf/st/eraser/parser/EraserParserHelper.java
+++ b/eraser-base/src/main/java/de/tudresden/inf/st/eraser/parser/EraserParserHelper.java
@@ -24,7 +24,7 @@ public class EraserParserHelper {
   private Map<String, Parameter> parameterMap = new HashMap<>();
   private Map<String, Item> itemMap = new HashMap<>();
   private Map<String, Group> groupMap = new HashMap<>();
-  private Map<String, ItemPerformance> itemPerformanceMap = new HashMap<>();
+  private Map<String, FrequencySetting> FrequencySettingMap = new HashMap<>();
 
   private Map<Thing, String> missingThingTypeMap = new HashMap<>();
   private Map<Channel, String> missingChannelTypeMap = new HashMap<>();
@@ -229,10 +229,10 @@ public class EraserParserHelper {
     return thing;
   }
 
-  public ItemPerformance setID(ItemPerformance itemPerformance, String id) {
-    itemPerformance.setID(id);
-    itemPerformanceMap.put(id,itemPerformance);
-    return itemPerformance;
+  public FrequencySetting setID(FrequencySetting FrequencySetting, String id) {
+    FrequencySetting.setID(id);
+    FrequencySettingMap.put(id,FrequencySetting);
+    return FrequencySetting;
   }
 
   public ThingType setID(ThingType thingType, String id) {
@@ -310,7 +310,7 @@ public class EraserParserHelper {
     itemWithCorrectType.setID(prototype.getID());
     itemWithCorrectType.setLabel(prototype.getLabel());
     itemWithCorrectType.setMetaDataList(prototype.getMetaDataList());
-    itemWithCorrectType.setItemPerformance(prototype.getItemPerformance());
+    itemWithCorrectType.setFrequencySetting(prototype.getFrequencySetting());
     if (!(itemWithCorrectType instanceof ActivityItem)) {
       String state = prototype.getStateAsString();
       itemWithCorrectType.disableSendState();
@@ -480,9 +480,9 @@ public class EraserParserHelper {
     return result;
   }
 
-  public Root createRoot(ItemPerformance itemPerformance) {
+  public Root createRoot(FrequencySetting FrequencySetting) {
     Root result = createRoot();
-    result.addItemPerformance(itemPerformance);
+    result.addFrequencySetting(FrequencySetting);
     return result;
   }