diff --git a/lib/app.dart b/lib/app.dart
index 38873993..b4e40452 100644
--- a/lib/app.dart
+++ b/lib/app.dart
@@ -20,7 +20,7 @@ import 'package:gitjournal/analytics/analytics.dart';
 import 'package:gitjournal/app_router.dart';
 import 'package:gitjournal/app_settings.dart';
 import 'package:gitjournal/core/notes_folder_fs.dart';
-import 'package:gitjournal/iap.dart';
+import 'package:gitjournal/iap/iap.dart';
 import 'package:gitjournal/repository.dart';
 import 'package:gitjournal/repository_manager.dart';
 import 'package:gitjournal/settings.dart';
diff --git a/lib/app_router.dart b/lib/app_router.dart
index 0e79fced..1994c314 100644
--- a/lib/app_router.dart
+++ b/lib/app_router.dart
@@ -2,6 +2,8 @@ import 'package:flutter/material.dart';
 
 import 'package:gitjournal/app_settings.dart';
 import 'package:gitjournal/core/md_yaml_doc_codec.dart';
+import 'package:gitjournal/iap/purchase_screen.dart';
+import 'package:gitjournal/iap/purchase_thankyou_screen.dart';
 import 'package:gitjournal/repository.dart';
 import 'package:gitjournal/screens/filesystem_screen.dart';
 import 'package:gitjournal/screens/folder_listing.dart';
@@ -10,8 +12,6 @@ import 'package:gitjournal/screens/home_screen.dart';
 import 'package:gitjournal/screens/login_screen.dart';
 import 'package:gitjournal/screens/note_editor.dart';
 import 'package:gitjournal/screens/onboarding_screens.dart';
-import 'package:gitjournal/screens/purchase_screen.dart';
-import 'package:gitjournal/screens/purchase_thankyou_screen.dart';
 import 'package:gitjournal/screens/settings_screen.dart';
 import 'package:gitjournal/screens/signup_screen.dart';
 import 'package:gitjournal/screens/tag_listing.dart';
diff --git a/lib/iap.dart b/lib/iap/iap.dart
similarity index 100%
rename from lib/iap.dart
rename to lib/iap/iap.dart
diff --git a/lib/purchase_manager.dart b/lib/iap/purchase_manager.dart
similarity index 97%
rename from lib/purchase_manager.dart
rename to lib/iap/purchase_manager.dart
index 8c5d2126..91763ce6 100644
--- a/lib/purchase_manager.dart
+++ b/lib/iap/purchase_manager.dart
@@ -5,9 +5,9 @@ import 'package:in_app_purchase/in_app_purchase.dart';
 
 import 'package:gitjournal/app_settings.dart';
 import 'package:gitjournal/error_reporting.dart';
-import 'package:gitjournal/iap.dart';
+import 'package:gitjournal/iap/iap.dart';
+import 'package:gitjournal/iap/purchase_slider.dart';
 import 'package:gitjournal/utils/logger.dart';
-import 'package:gitjournal/widgets/purchase_slider.dart';
 
 // ignore_for_file: cancel_subscriptions
 
diff --git a/lib/screens/purchase_screen.dart b/lib/iap/purchase_screen.dart
similarity index 98%
rename from lib/screens/purchase_screen.dart
rename to lib/iap/purchase_screen.dart
index bc40d95e..b97175d2 100644
--- a/lib/screens/purchase_screen.dart
+++ b/lib/iap/purchase_screen.dart
@@ -5,10 +5,10 @@ import 'package:flutter/material.dart';
 import 'package:easy_localization/easy_localization.dart';
 
 import 'package:gitjournal/analytics/analytics.dart';
-import 'package:gitjournal/purchase_manager.dart';
+import 'package:gitjournal/iap/purchase_manager.dart';
+import 'package:gitjournal/iap/purchase_widget.dart';
 import 'package:gitjournal/screens/feature_timeline_screen.dart';
 import 'package:gitjournal/utils/logger.dart';
-import 'package:gitjournal/widgets/purchase_widget.dart';
 import 'package:gitjournal/widgets/scroll_view_without_animation.dart';
 
 Set<String> _generateMonthlySkus() {
diff --git a/lib/widgets/purchase_slider.dart b/lib/iap/purchase_slider.dart
similarity index 100%
rename from lib/widgets/purchase_slider.dart
rename to lib/iap/purchase_slider.dart
diff --git a/lib/screens/purchase_thankyou_screen.dart b/lib/iap/purchase_thankyou_screen.dart
similarity index 100%
rename from lib/screens/purchase_thankyou_screen.dart
rename to lib/iap/purchase_thankyou_screen.dart
diff --git a/lib/widgets/purchase_widget.dart b/lib/iap/purchase_widget.dart
similarity index 98%
rename from lib/widgets/purchase_widget.dart
rename to lib/iap/purchase_widget.dart
index ba10038d..7709c9d2 100644
--- a/lib/widgets/purchase_widget.dart
+++ b/lib/iap/purchase_widget.dart
@@ -9,10 +9,10 @@ import 'package:in_app_purchase/in_app_purchase.dart';
 import 'package:gitjournal/analytics/analytics.dart';
 import 'package:gitjournal/app_settings.dart';
 import 'package:gitjournal/error_reporting.dart';
-import 'package:gitjournal/iap.dart';
-import 'package:gitjournal/purchase_manager.dart';
+import 'package:gitjournal/iap/iap.dart';
+import 'package:gitjournal/iap/purchase_manager.dart';
+import 'package:gitjournal/iap/purchase_slider.dart';
 import 'package:gitjournal/utils/logger.dart';
-import 'package:gitjournal/widgets/purchase_slider.dart';
 
 class PurchaseButton extends StatelessWidget {
   final ProductDetails? product;
diff --git a/stories/screens_stories.dart b/stories/screens_stories.dart
index 385a860a..a7089d4a 100644
--- a/stories/screens_stories.dart
+++ b/stories/screens_stories.dart
@@ -1,4 +1,4 @@
 import 'package:flutter/material.dart';
-import 'package:gitjournal/screens/purchase_thankyou_screen.dart';
+import 'package:gitjournal/iap/purchase_thankyou_screen.dart';
 
 Widget thankYou() => PurchaseThankYouScreen();