diff --git a/lib/view/pages/talk/chatBubble.dart b/lib/view/pages/talk/chatBubble.dart
index 7a118e1..a985858 100644
--- a/lib/view/pages/talk/chatBubble.dart
+++ b/lib/view/pages/talk/chatBubble.dart
@@ -8,7 +8,7 @@ import 'package:jiffy/jiffy.dart';
 import '../../../api/marianumcloud/talk/chat/getChatResponse.dart';
 import '../../../api/marianumcloud/talk/room/getRoomResponse.dart';
 import '../../../theming/appTheme.dart';
-import '../../settings/debug/jsonViewer.dart';
+import '../../../widget/debug/debugTile.dart';
 import '../files/fileElement.dart';
 import 'chatMessage.dart';
 
@@ -30,11 +30,6 @@ class ChatBubble extends StatefulWidget {
 }
 
 class _ChatBubbleState extends State<ChatBubble> {
-  // late BubbleStyle styleSystem;
-  // late BubbleStyle Function(bool) styleRemote;
-  // late BubbleStyle Function(bool) styleSelf;
-
-
   BubbleStyle getSystemStyle() {
     return BubbleStyle(
       color: AppTheme.isDarkMode(context) ? const Color(0xff182229) : Colors.white,
@@ -189,11 +184,7 @@ class _ChatBubbleState extends State<ChatBubble> {
                   onTap: () => {},
                 ),
               ),
-              ListTile(
-                leading: const Icon(Icons.bug_report_outlined),
-                title: const Text("Debugdaten anzeigen"),
-                onTap: () => JsonViewer.asDialog(context, widget.bubbleData.toJson()),
-              )
+              DebugTile(widget.bubbleData.toJson()).asTile(context),
             ],
           );
         });
diff --git a/lib/view/pages/talk/chatTile.dart b/lib/view/pages/talk/chatTile.dart
index ee63b9d..20a252e 100644
--- a/lib/view/pages/talk/chatTile.dart
+++ b/lib/view/pages/talk/chatTile.dart
@@ -10,6 +10,7 @@ import '../../../api/marianumcloud/talk/setFavorite/setFavorite.dart';
 import '../../../api/marianumcloud/talk/setReadMarker/setReadMarker.dart';
 import '../../../api/marianumcloud/talk/setReadMarker/setReadMarkerParams.dart';
 import '../../../widget/confirmDialog.dart';
+import '../../../widget/debug/debugTile.dart';
 import 'chatView.dart';
 
 class ChatTile extends StatefulWidget {
@@ -168,6 +169,7 @@ class _ChatTileState extends State<ChatTile> {
                 ).asDialog(context);
               },
             ),
+            DebugTile(widget.data.toJson()).asTile(context),
           ],
         ));
       },
diff --git a/lib/view/pages/timetable/appointmentDetails.dart b/lib/view/pages/timetable/appointmentDetails.dart
index a16ed88..e76a1f6 100644
--- a/lib/view/pages/timetable/appointmentDetails.dart
+++ b/lib/view/pages/timetable/appointmentDetails.dart
@@ -8,8 +8,8 @@ import '../../../api/webuntis/queries/getRooms/getRoomsResponse.dart';
 import '../../../api/webuntis/queries/getSubjects/getSubjectsResponse.dart';
 import '../../../api/webuntis/queries/getTimetable/getTimetableResponse.dart';
 import '../../../model/timetable/timetableProps.dart';
+import '../../../widget/debug/debugTile.dart';
 import '../../../widget/unimplementedDialog.dart';
-import '../../settings/debug/jsonViewer.dart';
 import '../more/roomplan/roomplan.dart';
 
 class AppointmentDetails {
@@ -76,11 +76,7 @@ class AppointmentDetails {
                 leading: const Icon(Icons.people),
                 title: Text("Klasse(n): ${timetableData.kl.map((e) => e['name']).join(", ")}"),
               ),
-              ListTile(
-                leading: const Icon(Icons.bug_report_outlined),
-                title: const Text("Webuntis Rohdaten zeigen"),
-                onTap: () => JsonViewer.asDialog(context, timetableData.toJson()),
-              )
+              DebugTile(timetableData.toJson()).asTile(context),
             ],
           ),
         )
diff --git a/lib/view/settings/settings.dart b/lib/view/settings/settings.dart
index a27fabc..f107ac1 100644
--- a/lib/view/settings/settings.dart
+++ b/lib/view/settings/settings.dart
@@ -9,8 +9,8 @@ import '../../model/accountModel.dart';
 import '../../storage/base/settingsProvider.dart';
 import '../../theming/appTheme.dart';
 import '../../widget/confirmDialog.dart';
-import 'debug/cacheView.dart';
-import 'debug/jsonViewer.dart';
+import '../../widget/debug/cacheView.dart';
+import '../../widget/debug/jsonViewer.dart';
 
 class Settings extends StatefulWidget {
   const Settings({Key? key}) : super(key: key);
diff --git a/lib/view/settings/about/about.dart b/lib/widget/about/about.dart
similarity index 100%
rename from lib/view/settings/about/about.dart
rename to lib/widget/about/about.dart
diff --git a/lib/view/settings/debug/cacheView.dart b/lib/widget/debug/cacheView.dart
similarity index 100%
rename from lib/view/settings/debug/cacheView.dart
rename to lib/widget/debug/cacheView.dart
diff --git a/lib/widget/debug/debugTile.dart b/lib/widget/debug/debugTile.dart
new file mode 100644
index 0000000..0327bc3
--- /dev/null
+++ b/lib/widget/debug/debugTile.dart
@@ -0,0 +1,26 @@
+import 'package:flutter/material.dart';
+import 'package:provider/provider.dart';
+
+import '../../storage/base/settingsProvider.dart';
+import 'jsonViewer.dart';
+
+class DebugTile {
+  Map<String, dynamic> data;
+
+  DebugTile(this.data);
+
+  Widget asTile(BuildContext context, {bool ignoreConfig = false}) {
+    return Visibility(
+      visible: Provider.of<SettingsProvider>(context).val().devToolsEnabled || ignoreConfig,
+      child: ListTile(
+        leading: const Column(
+          mainAxisAlignment: MainAxisAlignment.center,
+          children: [Icon(Icons.data_object)],
+        ),
+        title: const Text("JSON daten anzeigen"),
+        subtitle: const Text("Entwicklermodus aktiviert"),
+        onTap: () => JsonViewer.asDialog(context, data),
+      ),
+    );
+  }
+}
\ No newline at end of file
diff --git a/lib/view/settings/debug/jsonViewer.dart b/lib/widget/debug/jsonViewer.dart
similarity index 100%
rename from lib/view/settings/debug/jsonViewer.dart
rename to lib/widget/debug/jsonViewer.dart