diff --git a/lib/api/mhsl/message/getMessages/getMessages.dart b/lib/api/mhsl/message/getMessages/getMessages.dart
index 32a5734..34bfc6b 100644
--- a/lib/api/mhsl/message/getMessages/getMessages.dart
+++ b/lib/api/mhsl/message/getMessages/getMessages.dart
@@ -7,11 +7,8 @@ import 'getMessagesResponse.dart';
 
 class GetMessages extends MhslApi<GetMessagesResponse> {
   GetMessages() : super('message/messages.json');
-
-
   @override
   GetMessagesResponse assemble(String raw) => GetMessagesResponse.fromJson(jsonDecode(raw));
-
   @override
   Future<http.Response> request(Uri uri) => http.get(uri);
 }
diff --git a/lib/state/app/infrastructure/dataLoader/data_loader.dart b/lib/state/app/infrastructure/dataLoader/data_loader.dart
index 47306ba..c6b826b 100644
--- a/lib/state/app/infrastructure/dataLoader/data_loader.dart
+++ b/lib/state/app/infrastructure/dataLoader/data_loader.dart
@@ -1,3 +1,36 @@
+import 'dart:convert';
+import 'dart:developer';
+
+import 'package:dio/dio.dart';
+
 abstract class DataLoader<TResult> {
-  Future<TResult> fetch();
+  final Dio dio;
+  DataLoader(this.dio) {
+    dio.options.connectTimeout = const Duration(seconds: 10).inMilliseconds;
+    dio.options.sendTimeout = const Duration(seconds: 30).inMilliseconds;
+    dio.options.receiveTimeout = const Duration(seconds: 30).inMilliseconds;
+  }
+
+  Future<TResult> run() async {
+    var response = await fetch();
+    try {
+      return assemble(DataLoaderResult(
+        json: jsonDecode(response.data!),
+        headers: response.headers.map.map((key, value) => MapEntry(key, value.join(';'))),
+      ));
+    } catch(trace, e) {
+      log(trace.toString());
+      throw(e);
+    }
+  }
+
+  Future<Response<String>> fetch();
+  TResult assemble(DataLoaderResult data);
+}
+
+class DataLoaderResult {
+  final Map<String, dynamic> json;
+  final Map<String, String> headers;
+
+  DataLoaderResult({required this.json, required this.headers});
 }
diff --git a/lib/state/app/infrastructure/dataLoader/mhsl_data_loader.dart b/lib/state/app/infrastructure/dataLoader/mhsl_data_loader.dart
new file mode 100644
index 0000000..060e37d
--- /dev/null
+++ b/lib/state/app/infrastructure/dataLoader/mhsl_data_loader.dart
@@ -0,0 +1,9 @@
+import 'package:dio/dio.dart';
+
+import 'data_loader.dart';
+
+abstract class MhslDataLoader<TResult> extends DataLoader<TResult> {
+  MhslDataLoader() : super(Dio(BaseOptions(
+      baseUrl: 'https://mhsl.eu/marianum/marianummobile/'
+  )));
+}
diff --git a/lib/state/app/modules/marianumMessage/dataProvider/marianum_message_get_messages.dart b/lib/state/app/modules/marianumMessage/dataProvider/marianum_message_get_messages.dart
index 1a7d8f6..cb7f9db 100644
--- a/lib/state/app/modules/marianumMessage/dataProvider/marianum_message_get_messages.dart
+++ b/lib/state/app/modules/marianumMessage/dataProvider/marianum_message_get_messages.dart
@@ -1,12 +1,12 @@
+import 'package:dio/dio.dart';
+
 import '../../../infrastructure/dataLoader/data_loader.dart';
+import '../../../infrastructure/dataLoader/mhsl_data_loader.dart';
 import '../bloc/marianum_message_state.dart';
 
-class MarianumMessageGetMessages extends DataLoader<MarianumMessageList> {
-
+class MarianumMessageGetMessages extends MhslDataLoader<MarianumMessageList> {
   @override
-  Future<MarianumMessageList> fetch() async {
-    await Future.delayed(const Duration(seconds: 3));
-    // throw UnimplementedError("Test");
-    return const MarianumMessageList(base: '', messages: [MarianumMessage(date: '', name: 'RepoTest', url: '')]);
-  }
+  Future<Response<String>> fetch() async => dio.get('/message/messages.json');
+  @override
+  MarianumMessageList assemble(DataLoaderResult data) => MarianumMessageList.fromJson(data.json);
 }
diff --git a/lib/state/app/modules/marianumMessage/repository/marianum_message_repository.dart b/lib/state/app/modules/marianumMessage/repository/marianum_message_repository.dart
index 033f821..3148b92 100644
--- a/lib/state/app/modules/marianumMessage/repository/marianum_message_repository.dart
+++ b/lib/state/app/modules/marianumMessage/repository/marianum_message_repository.dart
@@ -3,5 +3,5 @@ import '../bloc/marianum_message_state.dart';
 import '../dataProvider/marianum_message_get_messages.dart';
 
 class MarianumMessageRepository extends Repository<MarianumMessageState> {
-  Future<MarianumMessageList> getMessages() => MarianumMessageGetMessages().fetch();
+  Future<MarianumMessageList> getMessages() => MarianumMessageGetMessages().run();
 }
diff --git a/lib/state/app/modules/marianumMessage/view/marianum_message_list_view.dart b/lib/state/app/modules/marianumMessage/view/marianum_message_list_view.dart
index a56bc36..bab6a1d 100644
--- a/lib/state/app/modules/marianumMessage/view/marianum_message_list_view.dart
+++ b/lib/state/app/modules/marianumMessage/view/marianum_message_list_view.dart
@@ -1,12 +1,10 @@
 import 'package:flutter/material.dart';
-import 'package:provider/provider.dart';
 
 import '../../../../../api/mhsl/message/getMessages/getMessagesResponse.dart';
 import '../../../../../view/pages/more/message/messageView.dart';
 import '../../../infrastructure/loadableState/loadable_state.dart';
 import '../../../infrastructure/loadableState/view/loadable_state_consumer.dart';
 import '../../../infrastructure/utilityWidgets/bloc_module.dart';
-import '../../../infrastructure/utilityWidgets/loadableHydratedBloc/loadable_hydrated_bloc_event.dart';
 import '../bloc/marianum_message_bloc.dart';
 import '../bloc/marianum_message_state.dart';
 
@@ -19,10 +17,6 @@ class MarianumMessageListView extends StatelessWidget {
     child: (context, bloc, state) => Scaffold(
         appBar: AppBar(
           title: const Text('Marianum Message'),
-          actions: [
-            IconButton(onPressed: () => context.read<MarianumMessageBloc>().add(Emit((state) => const MarianumMessageState(messageList: MarianumMessageList(base: '', messages: [MarianumMessage(url: '', name: 'Teeest', date: 'now')])))), icon: const Icon(Icons.add)),
-            IconButton(onPressed: () => context.read<MarianumMessageBloc>().add(ClearState()), icon: const Icon(Icons.add))
-          ],
         ),
         body: LoadableStateConsumer<MarianumMessageBloc, MarianumMessageState>(
           child: (state, loading) => ListView.builder(
@@ -34,7 +28,7 @@ class MarianumMessageListView extends StatelessWidget {
                   mainAxisAlignment: MainAxisAlignment.center,
                   children: [Icon(Icons.newspaper)],
                 ),
-                title: Text("${message.name}${loading ? "loading" : "notloading"}", overflow: TextOverflow.ellipsis),
+                title: Text(message.name, overflow: TextOverflow.ellipsis),
                 subtitle: Text('vom ${message.date}'),
                 trailing: const Icon(Icons.arrow_right),
                 onTap: () {
diff --git a/pubspec.yaml b/pubspec.yaml
index 61599a4..c74885e 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -103,6 +103,7 @@ dependencies:
   freezed_annotation: ^2.4.1
   connectivity_plus: ^6.0.3
   hydrated_bloc: ^9.1.5
+  dio: ^4.0.6
 
 dev_dependencies:
   flutter_test: