diff --git a/app/src/main/java/com/example/accessibilityinspectorservice/AccessibilityInspectorService.java b/app/src/main/java/com/example/accessibilityinspectorservice/AccessibilityInspectorService.java
index f9d9b71ed114cd2fe120f817e8ce95e6959cd3c4..8f74de754b775e125f2da08f6bae1d24030e0e3a 100644
--- a/app/src/main/java/com/example/accessibilityinspectorservice/AccessibilityInspectorService.java
+++ b/app/src/main/java/com/example/accessibilityinspectorservice/AccessibilityInspectorService.java
@@ -5,6 +5,7 @@ import android.app.Activity;
 import android.content.ComponentName;
 import android.content.Intent;
 import android.content.pm.ActivityInfo;
+import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.database.Cursor;
 import android.graphics.drawable.ShapeDrawable;
@@ -45,7 +46,10 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.OutputStreamWriter;
+import java.io.StringWriter;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 public class AccessibilityInspectorService extends AccessibilityService {
@@ -63,6 +67,7 @@ public class AccessibilityInspectorService extends AccessibilityService {
     Button exportButton;
     ActivityInfo activityInfo;
     ComponentName componentName;
+    String appName;
 
 
 
@@ -92,6 +97,10 @@ public class AccessibilityInspectorService extends AccessibilityService {
 
             }
 
+
+
+
+
         }
 
         btnCounter = 1;
@@ -108,6 +117,8 @@ public class AccessibilityInspectorService extends AccessibilityService {
                     wm = (WindowManager) getSystemService(WINDOW_SERVICE);
                     showFloatingWindow("init text");
                     accessButtonList = new ArrayList();
+
+                    appName =  e.getPackageName().toString();
                     logNodeHierarchy(getRootInActiveWindow(), 0);
                     addExportButton();
                 }
@@ -135,6 +146,12 @@ public class AccessibilityInspectorService extends AccessibilityService {
 
     }
 
+    public static String getApplicationName(Context context) {
+        ApplicationInfo applicationInfo = context.getApplicationInfo();
+        int stringId = applicationInfo.labelRes;
+        return stringId == 0 ? applicationInfo.nonLocalizedLabel.toString() : context.getString(stringId);
+    }
+
     private ActivityInfo tryGetActivity(ComponentName componentName) {
         try {
             return getPackageManager().getActivityInfo(componentName, 0);
@@ -168,6 +185,7 @@ public class AccessibilityInspectorService extends AccessibilityService {
         String contentDescription;
         String viewText;
         String hintText;
+        String labeledByElement;
         String logString = "";
 
         if (nodeInfo == null) return;
@@ -218,11 +236,22 @@ public class AccessibilityInspectorService extends AccessibilityService {
         if(nodeInfo.getHintText()!=null){
             hintText = nodeInfo.getHintText().toString();
         }
+
         else {
             hintText = "empty";
         }
 
-        CustomButton testBtn = new CustomButton(context, btnCounter, viewText, contentDescription, hintText);
+        if(nodeInfo.getLabeledBy()!=null){
+            labeledByElement = nodeInfo.getLabeledBy().getText().toString();
+        }
+
+        else {
+            labeledByElement = "not labeled";
+        }
+
+
+
+        CustomButton testBtn = new CustomButton(context, btnCounter, viewText, contentDescription, hintText, labeledByElement, appName);
         Button testBtn2 = new Button(context);
         testBtn.setText(String.valueOf(btnCounter));
         testBtn.setContentDescription("auto button");
@@ -416,16 +445,6 @@ public class AccessibilityInspectorService extends AccessibilityService {
 
     }
 
-    private void writeToFile(String data,Context context) {
-        try {
-            OutputStreamWriter outputStreamWriter = new OutputStreamWriter(context.openFileOutput("mytesttext.txt", Context.MODE_PRIVATE));
-            outputStreamWriter.write(data);
-            outputStreamWriter.close();
-        }
-        catch (IOException e) {
-            Log.e("Exception", "File write failed: " + e.toString());
-        }
-    }
 
 
     private void goToMainActivity(){
@@ -502,6 +521,72 @@ public class AccessibilityInspectorService extends AccessibilityService {
 
     }
 
+
+    private void writeToFile(String data,Context context) {
+        try {
+            OutputStreamWriter outputStreamWriter = new OutputStreamWriter(context.openFileOutput("mytesttext.txt", Context.MODE_PRIVATE));
+
+            String csvData = dataPreparation();
+
+
+            outputStreamWriter.write(csvData);
+            outputStreamWriter.close();
+        }
+        catch (IOException e) {
+            Log.e("Exception", "File write failed: " + e.toString());
+        }
+    }
+
+    private String dataPreparation(){
+
+        Date date = new Date();
+        long timestamp = date.getTime();
+        SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy'T'HH:mm:ssZ");
+        String csvData;
+
+        String elementNumber;
+        String elementText;
+        String contentDescription;
+        String elementHintText;
+        String labeledByElement;
+        String currentTime;
+        String currentDate = sdf.format(timestamp);
+        String appName;
+
+
+        StringWriter sw = new StringWriter();
+
+        String csvHeader = "Element-Nr, Beschriftung, Inhalts-Label, Hint, Zugeh. Label, Uhrzeit, Applikation";
+
+        sw.append(csvHeader);
+
+        sw.append("\n\r");
+
+        for (CustomButton ab: accessButtonList) {
+
+            sw.append(ab.getElementNumber());
+            sw.append(",");
+            sw.append(ab.getElementText());
+            sw.append(",");
+            sw.append(ab.getElementContentDescription());
+            sw.append(",");
+            sw.append(ab.getElementHint());
+            sw.append(",");
+            sw.append(ab.getLabeledByElement());
+            sw.append(",");
+            sw.append(currentDate);
+            sw.append(",");
+            sw.append(ab.getAppName());
+            sw.append("\n");
+        }
+
+        csvData = sw.toString();
+
+        return csvData;
+
+    }
+
+
     /*private void writeDataToCSV(){
 
         final Handler handler = new Handler() {
diff --git a/app/src/main/java/com/example/accessibilityinspectorservice/CustomButton.java b/app/src/main/java/com/example/accessibilityinspectorservice/CustomButton.java
index b1a7cac97767f1e8761c71760ea0908e07787ec8..61c33865dea21a0d76708febff5e779be33a4de1 100644
--- a/app/src/main/java/com/example/accessibilityinspectorservice/CustomButton.java
+++ b/app/src/main/java/com/example/accessibilityinspectorservice/CustomButton.java
@@ -29,7 +29,6 @@ public class CustomButton extends androidx.appcompat.widget.AppCompatButton /*im
     Custom Button
      */
 
-    String contentDescription;
     Context context;
     String logString;
     private static final String LOG_TAG = "ButtonActivity";
@@ -37,23 +36,30 @@ public class CustomButton extends androidx.appcompat.widget.AppCompatButton /*im
     LayoutInflater layoutInflater;
     TextView testText;
 
+    int btnCounter;
     String viewText;
+    String contentDescription;
     String hintText;
-    int btnCounter;
+    String labeledByElement;
+    String appName;
+
+
 
 
     public CustomButton(Context context) {
-        this(context, 0, null, null, null);
+        this(context, 0, null, null, null, null, null);
     }
 
-    public CustomButton(Context context, int btnCounter, String viewText, String contentDescription, String hintText) {
+    public CustomButton(Context context, int btnCounter, String viewText, String contentDescription, String hintText, String labeledByElement, String appName) {
         super(context);
         init();
         this.btnCounter = btnCounter;
         this.viewText = viewText;
         this.contentDescription = contentDescription;
         this.hintText = hintText;
+        this.labeledByElement = labeledByElement;
         this.context = context;
+        this.appName = appName;
     }
 
     private void init(){
@@ -112,4 +118,31 @@ public class CustomButton extends androidx.appcompat.widget.AppCompatButton /*im
         return InformationString;
     }
 
+    public String getElementNumber(){
+
+        return String.valueOf(btnCounter);
+
+    }
+    public String getElementText(){
+
+        return viewText;
+
+    }
+    public String getElementContentDescription(){
+
+        return contentDescription;
+    }
+    public String getElementHint(){
+        return hintText;
+
+    }
+    public String getLabeledByElement(){
+        return labeledByElement;
+    }
+
+
+    public String getAppName(){
+        return appName;
+    }
+
 }