diff --git a/lib/context.dart b/lib/context.dart
index a0c24a7cf8730da62238184e88dba3ad0544f48a..70c1ed72ee219fc61cea8515e7be5a9a1e045148 100644
--- a/lib/context.dart
+++ b/lib/context.dart
@@ -4,12 +4,17 @@ import 'untis/lecture.dart';
 import 'user/profile.dart';
 import 'user/save_state.dart';
 import 'util/listenable.dart';
+import 'views/mixed_class_view.dart';
+import 'views/view.dart';
 
 class AppContext {
   final UntisFetch untis;
   final SaveManager _saveManager;
   final Listenable<Profile?> profile = Listenable(null);
   final Listenable<DateTime> date = Listenable(DateTime.now());
+  final Listenable<TimetableView> view = Listenable(
+    MixedClassView(classIds: {}),
+  );
 
   List<Class>? classes;
   List<Lecture>? lectures;
@@ -24,5 +29,6 @@ class AppContext {
     profile.value!
       ..hiddenLectures.onChange.listen((_) => save())
       ..selectedClasses.onChange.listen((_) => save());
+    view.value = MixedClassView(classIds: profile.value!.selectedClasses);
   }
 }
diff --git a/lib/main.dart b/lib/main.dart
index da393dc7425c3fe7fd04eda48fc29377762bb0f1..baa6d4e6befc0fc9ebd9f8b2959d1793aa3eba1f 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -13,8 +13,6 @@ import 'untis/fetch.dart';
 import 'untis/timetable.dart';
 import 'user/save_state.dart';
 import 'util/listenable.dart';
-import 'views/mixed_class_view.dart';
-import 'views/view.dart';
 
 void main() {
   runApp(const MyApp());
@@ -58,7 +56,6 @@ class MyHomePage extends StatefulWidget {
 }
 
 class _MyHomePageState extends State<MyHomePage> {
-  late TimetableView view;
   late List<StreamSubscription> _subscriptions;
 
   TimetableData? timetable;
@@ -108,11 +105,7 @@ class _MyHomePageState extends State<MyHomePage> {
 
   Future<void> fetchTimetable() async {
     final date = appContext.date.value;
-
-    final profile = await appContext.profile.firstNotNull;
-    final selectedClasses = profile.selectedClasses;
-
-    view = MixedClassView(classIds: selectedClasses);
+    final view = appContext.view.value;
     final fetchedTimetable = await view.timetableOf(date, untis: untis);
 
     setState(() {