diff --git a/eraser.starter/src/main/java/de/tudresden/inf/st/eraser/starter/TestMachineLearningHandlerFactory.java b/eraser.starter/src/main/java/de/tudresden/inf/st/eraser/starter/TestMachineLearningHandlerFactory.java
index e60b398d47c330d6dae39ed0d3ed5f89e4fb6e1a..d6946f471d0ed94f7b2c979f3faa7c44c77775d6 100644
--- a/eraser.starter/src/main/java/de/tudresden/inf/st/eraser/starter/TestMachineLearningHandlerFactory.java
+++ b/eraser.starter/src/main/java/de/tudresden/inf/st/eraser/starter/TestMachineLearningHandlerFactory.java
@@ -4,8 +4,10 @@ import de.tudresden.inf.st.eraser.jastadd.model.*;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
+import java.io.IOException;
+import java.io.InputStream;
 import java.net.URL;
-import java.util.Optional;
+import java.util.Properties;
 
 /**
  * Testing preference setting
@@ -15,12 +17,23 @@ import java.util.Optional;
 public class TestMachineLearningHandlerFactory extends MachineLearningHandlerFactory {
 
   private static final Logger logger = LogManager.getLogger(TestMachineLearningHandlerFactory.class);
+  private double offset = 0;
+  private double multiplier = 1;
 
   @Override
   public void initializeFor(MachineLearningHandlerFactoryTarget target, URL configUrl) {
     if (target != MachineLearningHandlerFactoryTarget.PREFERENCE_LEARNING) {
       logger.error("Test Factory only made for preference learning, not {}", target);
     }
+    // treat given file as properties file
+    try (InputStream input = configUrl.openStream()) {
+      Properties prop = new Properties();
+      prop.load(input);
+      offset = Double.parseDouble(prop.getProperty("offset", "0"));
+      multiplier = Double.parseDouble(prop.getProperty("multiplier", "1"));
+    } catch (IOException | IllegalArgumentException e) {
+      logger.catching(e);
+    }
   }
 
   @Override
@@ -42,8 +55,8 @@ public class TestMachineLearningHandlerFactory extends MachineLearningHandlerFac
           // dirty hack to override value based on activity during runtime
           @Override
           public double getNewValue() {
-            Optional<Activity> activityOpt = knowledgeBase.currentActivity();
-            return activityOpt.orElse(knowledgeBase.getMachineLearningRoot().getActivity(0)).getIdentifier();
+            Activity activity = knowledgeBase.currentActivity().orElse(knowledgeBase.getMachineLearningRoot().getActivity(0));
+            return offset + activity.getIdentifier() * multiplier;
           }
         };
         update.setItem(item);
diff --git a/eraser.starter/src/main/resources/testHandler.properties b/eraser.starter/src/main/resources/testHandler.properties
new file mode 100644
index 0000000000000000000000000000000000000000..98a5f0e153b69773798b53d8a4b37aa9a5993ba6
--- /dev/null
+++ b/eraser.starter/src/main/resources/testHandler.properties
@@ -0,0 +1,2 @@
+offset=4
+multiplier=10
diff --git a/eraser.starter/starter-setting.yaml b/eraser.starter/starter-setting.yaml
index 459ef78f5a24d37000b7e9bcbe8aaff76af650f5..6882f55d55fac2263502bec198d849a226eee852 100644
--- a/eraser.starter/starter-setting.yaml
+++ b/eraser.starter/starter-setting.yaml
@@ -25,7 +25,7 @@ load:
 # Model for activity recognition. If dummy is true, then the file parameter is ignored.
 activity:
   factory: de.tudresden.inf.st.eraser.feedbackloop.learner_backup.MachineLearningHandlerFactoryImpl
-  # File to read in. Expected format = csv   /Users/boqi/eraser/datasets
+  # File to read in. Expected format depends on factory
   file: ../datasets/backup/activity_data.csv
   external: true
   # Use dummy model in which the current activity is directly editable. Default: false.
@@ -38,8 +38,9 @@ activity:
 # Model for preference learning. If dummy is true, then the file parameter is ignored.
 preference:
   factory: de.tudresden.inf.st.eraser.starter.TestMachineLearningHandlerFactory
-  # File to read in. Expected format = csv
-  file: ../datasets/backup/preference_data.csv
+  # File to read in. Expected format depends on factory
+  file: src/main/resources/testHandler.properties
+#  file: ../datasets/backup/preference_data.csv
   external: true
   # Use dummy model in which the current activity is directly editable. Default: false.
   dummy: false