diff --git a/Account/.gitignore b/Modules/Account/.gitignore similarity index 100% rename from Account/.gitignore rename to Modules/Account/.gitignore diff --git a/Account/.swiftpm/xcode/xcshareddata/xcschemes/Account.xcscheme b/Modules/Account/.swiftpm/xcode/xcshareddata/xcschemes/Account.xcscheme similarity index 100% rename from Account/.swiftpm/xcode/xcshareddata/xcschemes/Account.xcscheme rename to Modules/Account/.swiftpm/xcode/xcshareddata/xcschemes/Account.xcscheme diff --git a/Account/Package.swift b/Modules/Account/Package.swift similarity index 100% rename from Account/Package.swift rename to Modules/Account/Package.swift diff --git a/Account/README.md b/Modules/Account/README.md similarity index 100% rename from Account/README.md rename to Modules/Account/README.md diff --git a/Account/Sources/Account/Account.swift b/Modules/Account/Sources/Account/Account.swift similarity index 100% rename from Account/Sources/Account/Account.swift rename to Modules/Account/Sources/Account/Account.swift diff --git a/Account/Sources/Account/AccountBehaviors.swift b/Modules/Account/Sources/Account/AccountBehaviors.swift similarity index 100% rename from Account/Sources/Account/AccountBehaviors.swift rename to Modules/Account/Sources/Account/AccountBehaviors.swift diff --git a/Account/Sources/Account/AccountDelegate.swift b/Modules/Account/Sources/Account/AccountDelegate.swift similarity index 100% rename from Account/Sources/Account/AccountDelegate.swift rename to Modules/Account/Sources/Account/AccountDelegate.swift diff --git a/Account/Sources/Account/AccountError.swift b/Modules/Account/Sources/Account/AccountError.swift similarity index 100% rename from Account/Sources/Account/AccountError.swift rename to Modules/Account/Sources/Account/AccountError.swift diff --git a/Account/Sources/Account/AccountManager.swift b/Modules/Account/Sources/Account/AccountManager.swift similarity index 100% rename from Account/Sources/Account/AccountManager.swift rename to Modules/Account/Sources/Account/AccountManager.swift diff --git a/Account/Sources/Account/AccountMetadata.swift b/Modules/Account/Sources/Account/AccountMetadata.swift similarity index 100% rename from Account/Sources/Account/AccountMetadata.swift rename to Modules/Account/Sources/Account/AccountMetadata.swift diff --git a/Account/Sources/Account/AccountMetadataFile.swift b/Modules/Account/Sources/Account/AccountMetadataFile.swift similarity index 100% rename from Account/Sources/Account/AccountMetadataFile.swift rename to Modules/Account/Sources/Account/AccountMetadataFile.swift diff --git a/Account/Sources/Account/AccountSyncError.swift b/Modules/Account/Sources/Account/AccountSyncError.swift similarity index 100% rename from Account/Sources/Account/AccountSyncError.swift rename to Modules/Account/Sources/Account/AccountSyncError.swift diff --git a/Account/Sources/Account/ArticleFetcher.swift b/Modules/Account/Sources/Account/ArticleFetcher.swift similarity index 100% rename from Account/Sources/Account/ArticleFetcher.swift rename to Modules/Account/Sources/Account/ArticleFetcher.swift diff --git a/Account/Sources/Account/CloudKit/CKRecord+Extensions.swift b/Modules/Account/Sources/Account/CloudKit/CKRecord+Extensions.swift similarity index 100% rename from Account/Sources/Account/CloudKit/CKRecord+Extensions.swift rename to Modules/Account/Sources/Account/CloudKit/CKRecord+Extensions.swift diff --git a/Account/Sources/Account/CloudKit/CloudKitAccountDelegate.swift b/Modules/Account/Sources/Account/CloudKit/CloudKitAccountDelegate.swift similarity index 100% rename from Account/Sources/Account/CloudKit/CloudKitAccountDelegate.swift rename to Modules/Account/Sources/Account/CloudKit/CloudKitAccountDelegate.swift diff --git a/Account/Sources/Account/CloudKit/CloudKitAccountZone.swift b/Modules/Account/Sources/Account/CloudKit/CloudKitAccountZone.swift similarity index 100% rename from Account/Sources/Account/CloudKit/CloudKitAccountZone.swift rename to Modules/Account/Sources/Account/CloudKit/CloudKitAccountZone.swift diff --git a/Account/Sources/Account/CloudKit/CloudKitAccountZoneDelegate.swift b/Modules/Account/Sources/Account/CloudKit/CloudKitAccountZoneDelegate.swift similarity index 100% rename from Account/Sources/Account/CloudKit/CloudKitAccountZoneDelegate.swift rename to Modules/Account/Sources/Account/CloudKit/CloudKitAccountZoneDelegate.swift diff --git a/Account/Sources/Account/CloudKit/CloudKitArticleStatusUpdate.swift b/Modules/Account/Sources/Account/CloudKit/CloudKitArticleStatusUpdate.swift similarity index 100% rename from Account/Sources/Account/CloudKit/CloudKitArticleStatusUpdate.swift rename to Modules/Account/Sources/Account/CloudKit/CloudKitArticleStatusUpdate.swift diff --git a/Account/Sources/Account/CloudKit/CloudKitArticlesZone.swift b/Modules/Account/Sources/Account/CloudKit/CloudKitArticlesZone.swift similarity index 100% rename from Account/Sources/Account/CloudKit/CloudKitArticlesZone.swift rename to Modules/Account/Sources/Account/CloudKit/CloudKitArticlesZone.swift diff --git a/Account/Sources/Account/CloudKit/CloudKitArticlesZoneDelegate.swift b/Modules/Account/Sources/Account/CloudKit/CloudKitArticlesZoneDelegate.swift similarity index 100% rename from Account/Sources/Account/CloudKit/CloudKitArticlesZoneDelegate.swift rename to Modules/Account/Sources/Account/CloudKit/CloudKitArticlesZoneDelegate.swift diff --git a/Account/Sources/Account/CloudKit/CloudKitReceiveStatusOperation.swift b/Modules/Account/Sources/Account/CloudKit/CloudKitReceiveStatusOperation.swift similarity index 100% rename from Account/Sources/Account/CloudKit/CloudKitReceiveStatusOperation.swift rename to Modules/Account/Sources/Account/CloudKit/CloudKitReceiveStatusOperation.swift diff --git a/Account/Sources/Account/CloudKit/CloudKitRemoteNotificationOperation.swift b/Modules/Account/Sources/Account/CloudKit/CloudKitRemoteNotificationOperation.swift similarity index 100% rename from Account/Sources/Account/CloudKit/CloudKitRemoteNotificationOperation.swift rename to Modules/Account/Sources/Account/CloudKit/CloudKitRemoteNotificationOperation.swift diff --git a/Account/Sources/Account/CloudKit/CloudKitSendStatusOperation.swift b/Modules/Account/Sources/Account/CloudKit/CloudKitSendStatusOperation.swift similarity index 100% rename from Account/Sources/Account/CloudKit/CloudKitSendStatusOperation.swift rename to Modules/Account/Sources/Account/CloudKit/CloudKitSendStatusOperation.swift diff --git a/Account/Sources/Account/CloudKit/CloudKitWebDocumentation.swift b/Modules/Account/Sources/Account/CloudKit/CloudKitWebDocumentation.swift similarity index 100% rename from Account/Sources/Account/CloudKit/CloudKitWebDocumentation.swift rename to Modules/Account/Sources/Account/CloudKit/CloudKitWebDocumentation.swift diff --git a/Account/Sources/Account/CombinedRefreshProgress.swift b/Modules/Account/Sources/Account/CombinedRefreshProgress.swift similarity index 100% rename from Account/Sources/Account/CombinedRefreshProgress.swift rename to Modules/Account/Sources/Account/CombinedRefreshProgress.swift diff --git a/Account/Sources/Account/Container.swift b/Modules/Account/Sources/Account/Container.swift similarity index 100% rename from Account/Sources/Account/Container.swift rename to Modules/Account/Sources/Account/Container.swift diff --git a/Account/Sources/Account/ContainerIdentifier.swift b/Modules/Account/Sources/Account/ContainerIdentifier.swift similarity index 100% rename from Account/Sources/Account/ContainerIdentifier.swift rename to Modules/Account/Sources/Account/ContainerIdentifier.swift diff --git a/Account/Sources/Account/ContainerPath.swift b/Modules/Account/Sources/Account/ContainerPath.swift similarity index 100% rename from Account/Sources/Account/ContainerPath.swift rename to Modules/Account/Sources/Account/ContainerPath.swift diff --git a/Account/Sources/Account/DataExtensions.swift b/Modules/Account/Sources/Account/DataExtensions.swift similarity index 100% rename from Account/Sources/Account/DataExtensions.swift rename to Modules/Account/Sources/Account/DataExtensions.swift diff --git a/Account/Sources/Account/Feed.swift b/Modules/Account/Sources/Account/Feed.swift similarity index 100% rename from Account/Sources/Account/Feed.swift rename to Modules/Account/Sources/Account/Feed.swift diff --git a/Account/Sources/Account/FeedFinder/FeedFinder.swift b/Modules/Account/Sources/Account/FeedFinder/FeedFinder.swift similarity index 100% rename from Account/Sources/Account/FeedFinder/FeedFinder.swift rename to Modules/Account/Sources/Account/FeedFinder/FeedFinder.swift diff --git a/Account/Sources/Account/FeedFinder/FeedSpecifier.swift b/Modules/Account/Sources/Account/FeedFinder/FeedSpecifier.swift similarity index 100% rename from Account/Sources/Account/FeedFinder/FeedSpecifier.swift rename to Modules/Account/Sources/Account/FeedFinder/FeedSpecifier.swift diff --git a/Account/Sources/Account/FeedFinder/HTMLFeedFinder.swift b/Modules/Account/Sources/Account/FeedFinder/HTMLFeedFinder.swift similarity index 100% rename from Account/Sources/Account/FeedFinder/HTMLFeedFinder.swift rename to Modules/Account/Sources/Account/FeedFinder/HTMLFeedFinder.swift diff --git a/Account/Sources/Account/FeedMetadata.swift b/Modules/Account/Sources/Account/FeedMetadata.swift similarity index 100% rename from Account/Sources/Account/FeedMetadata.swift rename to Modules/Account/Sources/Account/FeedMetadata.swift diff --git a/Account/Sources/Account/FeedMetadataFile.swift b/Modules/Account/Sources/Account/FeedMetadataFile.swift similarity index 100% rename from Account/Sources/Account/FeedMetadataFile.swift rename to Modules/Account/Sources/Account/FeedMetadataFile.swift diff --git a/Account/Sources/Account/Feedbin/FeedbinAPICaller.swift b/Modules/Account/Sources/Account/Feedbin/FeedbinAPICaller.swift similarity index 100% rename from Account/Sources/Account/Feedbin/FeedbinAPICaller.swift rename to Modules/Account/Sources/Account/Feedbin/FeedbinAPICaller.swift diff --git a/Account/Sources/Account/Feedbin/FeedbinAccountDelegate.swift b/Modules/Account/Sources/Account/Feedbin/FeedbinAccountDelegate.swift similarity index 100% rename from Account/Sources/Account/Feedbin/FeedbinAccountDelegate.swift rename to Modules/Account/Sources/Account/Feedbin/FeedbinAccountDelegate.swift diff --git a/Account/Sources/Account/Feedbin/FeedbinDate.swift b/Modules/Account/Sources/Account/Feedbin/FeedbinDate.swift similarity index 100% rename from Account/Sources/Account/Feedbin/FeedbinDate.swift rename to Modules/Account/Sources/Account/Feedbin/FeedbinDate.swift diff --git a/Account/Sources/Account/Feedbin/FeedbinEntry.swift b/Modules/Account/Sources/Account/Feedbin/FeedbinEntry.swift similarity index 100% rename from Account/Sources/Account/Feedbin/FeedbinEntry.swift rename to Modules/Account/Sources/Account/Feedbin/FeedbinEntry.swift diff --git a/Account/Sources/Account/Feedbin/FeedbinImportResult.swift b/Modules/Account/Sources/Account/Feedbin/FeedbinImportResult.swift similarity index 100% rename from Account/Sources/Account/Feedbin/FeedbinImportResult.swift rename to Modules/Account/Sources/Account/Feedbin/FeedbinImportResult.swift diff --git a/Account/Sources/Account/Feedbin/FeedbinStarredEntry.swift b/Modules/Account/Sources/Account/Feedbin/FeedbinStarredEntry.swift similarity index 100% rename from Account/Sources/Account/Feedbin/FeedbinStarredEntry.swift rename to Modules/Account/Sources/Account/Feedbin/FeedbinStarredEntry.swift diff --git a/Account/Sources/Account/Feedbin/FeedbinSubscription.swift b/Modules/Account/Sources/Account/Feedbin/FeedbinSubscription.swift similarity index 100% rename from Account/Sources/Account/Feedbin/FeedbinSubscription.swift rename to Modules/Account/Sources/Account/Feedbin/FeedbinSubscription.swift diff --git a/Account/Sources/Account/Feedbin/FeedbinTag.swift b/Modules/Account/Sources/Account/Feedbin/FeedbinTag.swift similarity index 100% rename from Account/Sources/Account/Feedbin/FeedbinTag.swift rename to Modules/Account/Sources/Account/Feedbin/FeedbinTag.swift diff --git a/Account/Sources/Account/Feedbin/FeedbinTagging.swift b/Modules/Account/Sources/Account/Feedbin/FeedbinTagging.swift similarity index 100% rename from Account/Sources/Account/Feedbin/FeedbinTagging.swift rename to Modules/Account/Sources/Account/Feedbin/FeedbinTagging.swift diff --git a/Account/Sources/Account/Feedbin/FeedbinUnreadEntry.swift b/Modules/Account/Sources/Account/Feedbin/FeedbinUnreadEntry.swift similarity index 100% rename from Account/Sources/Account/Feedbin/FeedbinUnreadEntry.swift rename to Modules/Account/Sources/Account/Feedbin/FeedbinUnreadEntry.swift diff --git a/Account/Sources/Account/Feedly/FeedlyAPICaller.swift b/Modules/Account/Sources/Account/Feedly/FeedlyAPICaller.swift similarity index 100% rename from Account/Sources/Account/Feedly/FeedlyAPICaller.swift rename to Modules/Account/Sources/Account/Feedly/FeedlyAPICaller.swift diff --git a/Account/Sources/Account/Feedly/FeedlyAccountDelegate+OAuth.swift b/Modules/Account/Sources/Account/Feedly/FeedlyAccountDelegate+OAuth.swift similarity index 100% rename from Account/Sources/Account/Feedly/FeedlyAccountDelegate+OAuth.swift rename to Modules/Account/Sources/Account/Feedly/FeedlyAccountDelegate+OAuth.swift diff --git a/Account/Sources/Account/Feedly/FeedlyAccountDelegate.swift b/Modules/Account/Sources/Account/Feedly/FeedlyAccountDelegate.swift similarity index 100% rename from Account/Sources/Account/Feedly/FeedlyAccountDelegate.swift rename to Modules/Account/Sources/Account/Feedly/FeedlyAccountDelegate.swift diff --git a/Account/Sources/Account/Feedly/FeedlyAccountDelegateError.swift b/Modules/Account/Sources/Account/Feedly/FeedlyAccountDelegateError.swift similarity index 100% rename from Account/Sources/Account/Feedly/FeedlyAccountDelegateError.swift rename to Modules/Account/Sources/Account/Feedly/FeedlyAccountDelegateError.swift diff --git a/Account/Sources/Account/Feedly/FeedlyFeedContainerValidator.swift b/Modules/Account/Sources/Account/Feedly/FeedlyFeedContainerValidator.swift similarity index 100% rename from Account/Sources/Account/Feedly/FeedlyFeedContainerValidator.swift rename to Modules/Account/Sources/Account/Feedly/FeedlyFeedContainerValidator.swift diff --git a/Account/Sources/Account/Feedly/FeedlyResourceProviding.swift b/Modules/Account/Sources/Account/Feedly/FeedlyResourceProviding.swift similarity index 100% rename from Account/Sources/Account/Feedly/FeedlyResourceProviding.swift rename to Modules/Account/Sources/Account/Feedly/FeedlyResourceProviding.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyCategory.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyCategory.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyCategory.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyCategory.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyCollection.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyCollection.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyCollection.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyCollection.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyCollectionParser.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyCollectionParser.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyCollectionParser.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyCollectionParser.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyEntry.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyEntry.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyEntry.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyEntry.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyEntryIdentifierProviding.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyEntryIdentifierProviding.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyEntryIdentifierProviding.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyEntryIdentifierProviding.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyEntryParser.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyEntryParser.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyEntryParser.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyEntryParser.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyFeed.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyFeed.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyFeed.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyFeed.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyFeedParser.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyFeedParser.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyFeedParser.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyFeedParser.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyFeedsSearchResponse.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyFeedsSearchResponse.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyFeedsSearchResponse.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyFeedsSearchResponse.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyLink.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyLink.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyLink.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyLink.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyOrigin.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyOrigin.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyOrigin.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyOrigin.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyRTLTextSanitizer.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyRTLTextSanitizer.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyRTLTextSanitizer.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyRTLTextSanitizer.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyResourceId.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyResourceId.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyResourceId.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyResourceId.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyStream.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyStream.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyStream.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyStream.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyStreamIds.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyStreamIds.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyStreamIds.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyStreamIds.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyTag.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyTag.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyTag.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyTag.swift diff --git a/Account/Sources/Account/Feedly/OAuthAccountAuthorizationOperation.swift b/Modules/Account/Sources/Account/Feedly/OAuthAccountAuthorizationOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/OAuthAccountAuthorizationOperation.swift rename to Modules/Account/Sources/Account/Feedly/OAuthAccountAuthorizationOperation.swift diff --git a/Account/Sources/Account/Feedly/OAuthAcessTokenRefreshing.swift b/Modules/Account/Sources/Account/Feedly/OAuthAcessTokenRefreshing.swift similarity index 100% rename from Account/Sources/Account/Feedly/OAuthAcessTokenRefreshing.swift rename to Modules/Account/Sources/Account/Feedly/OAuthAcessTokenRefreshing.swift diff --git a/Account/Sources/Account/Feedly/OAuthAuthorizationClient+Feedly.swift b/Modules/Account/Sources/Account/Feedly/OAuthAuthorizationClient+Feedly.swift similarity index 100% rename from Account/Sources/Account/Feedly/OAuthAuthorizationClient+Feedly.swift rename to Modules/Account/Sources/Account/Feedly/OAuthAuthorizationClient+Feedly.swift diff --git a/Account/Sources/Account/Feedly/OAuthAuthorizationCodeGranting.swift b/Modules/Account/Sources/Account/Feedly/OAuthAuthorizationCodeGranting.swift similarity index 100% rename from Account/Sources/Account/Feedly/OAuthAuthorizationCodeGranting.swift rename to Modules/Account/Sources/Account/Feedly/OAuthAuthorizationCodeGranting.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyAddExistingFeedOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyAddExistingFeedOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyAddExistingFeedOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyAddExistingFeedOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyAddFeedToCollectionOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyAddFeedToCollectionOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyAddFeedToCollectionOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyAddFeedToCollectionOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyAddNewFeedOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyAddNewFeedOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyAddNewFeedOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyAddNewFeedOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyCheckpointOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyCheckpointOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyCheckpointOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyCheckpointOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyCreateFeedsForCollectionFoldersOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyCreateFeedsForCollectionFoldersOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyCreateFeedsForCollectionFoldersOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyCreateFeedsForCollectionFoldersOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyDownloadArticlesOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyDownloadArticlesOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyDownloadArticlesOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyDownloadArticlesOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyFetchIdsForMissingArticlesOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyFetchIdsForMissingArticlesOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyFetchIdsForMissingArticlesOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyFetchIdsForMissingArticlesOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyGetCollectionsOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyGetCollectionsOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyGetCollectionsOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyGetCollectionsOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyGetEntriesOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyGetEntriesOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyGetEntriesOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyGetEntriesOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyGetStreamContentsOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyGetStreamContentsOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyGetStreamContentsOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyGetStreamContentsOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyGetStreamIdsOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyGetStreamIdsOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyGetStreamIdsOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyGetStreamIdsOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyGetUpdatedArticleIdsOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyGetUpdatedArticleIdsOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyGetUpdatedArticleIdsOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyGetUpdatedArticleIdsOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyIngestStarredArticleIdsOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyIngestStarredArticleIdsOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyIngestStarredArticleIdsOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyIngestStarredArticleIdsOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyIngestStreamArticleIdsOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyIngestStreamArticleIdsOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyIngestStreamArticleIdsOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyIngestStreamArticleIdsOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyIngestUnreadArticleIdsOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyIngestUnreadArticleIdsOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyIngestUnreadArticleIdsOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyIngestUnreadArticleIdsOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyLogoutOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyLogoutOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyLogoutOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyLogoutOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyMirrorCollectionsAsFoldersOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyMirrorCollectionsAsFoldersOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyMirrorCollectionsAsFoldersOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyMirrorCollectionsAsFoldersOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyOrganiseParsedItemsByFeedOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyOrganiseParsedItemsByFeedOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyOrganiseParsedItemsByFeedOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyOrganiseParsedItemsByFeedOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyRefreshAccessTokenOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyRefreshAccessTokenOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyRefreshAccessTokenOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyRefreshAccessTokenOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyRequestStreamsOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyRequestStreamsOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyRequestStreamsOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyRequestStreamsOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlySearchOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlySearchOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlySearchOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlySearchOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlySendArticleStatusesOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlySendArticleStatusesOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlySendArticleStatusesOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlySendArticleStatusesOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlySyncAllOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlySyncAllOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlySyncAllOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlySyncAllOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlySyncStreamContentsOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlySyncStreamContentsOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlySyncStreamContentsOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlySyncStreamContentsOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyUpdateAccountFeedsWithItemsOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyUpdateAccountFeedsWithItemsOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyUpdateAccountFeedsWithItemsOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyUpdateAccountFeedsWithItemsOperation.swift diff --git a/Account/Sources/Account/Feedly/Services/FeedlyGetCollectionsService.swift b/Modules/Account/Sources/Account/Feedly/Services/FeedlyGetCollectionsService.swift similarity index 100% rename from Account/Sources/Account/Feedly/Services/FeedlyGetCollectionsService.swift rename to Modules/Account/Sources/Account/Feedly/Services/FeedlyGetCollectionsService.swift diff --git a/Account/Sources/Account/Feedly/Services/FeedlyGetEntriesService.swift b/Modules/Account/Sources/Account/Feedly/Services/FeedlyGetEntriesService.swift similarity index 100% rename from Account/Sources/Account/Feedly/Services/FeedlyGetEntriesService.swift rename to Modules/Account/Sources/Account/Feedly/Services/FeedlyGetEntriesService.swift diff --git a/Account/Sources/Account/Feedly/Services/FeedlyGetStreamContentsService.swift b/Modules/Account/Sources/Account/Feedly/Services/FeedlyGetStreamContentsService.swift similarity index 100% rename from Account/Sources/Account/Feedly/Services/FeedlyGetStreamContentsService.swift rename to Modules/Account/Sources/Account/Feedly/Services/FeedlyGetStreamContentsService.swift diff --git a/Account/Sources/Account/Feedly/Services/FeedlyGetStreamIdsService.swift b/Modules/Account/Sources/Account/Feedly/Services/FeedlyGetStreamIdsService.swift similarity index 100% rename from Account/Sources/Account/Feedly/Services/FeedlyGetStreamIdsService.swift rename to Modules/Account/Sources/Account/Feedly/Services/FeedlyGetStreamIdsService.swift diff --git a/Account/Sources/Account/Feedly/Services/FeedlyMarkArticlesService.swift b/Modules/Account/Sources/Account/Feedly/Services/FeedlyMarkArticlesService.swift similarity index 100% rename from Account/Sources/Account/Feedly/Services/FeedlyMarkArticlesService.swift rename to Modules/Account/Sources/Account/Feedly/Services/FeedlyMarkArticlesService.swift diff --git a/Account/Sources/Account/Folder.swift b/Modules/Account/Sources/Account/Folder.swift similarity index 100% rename from Account/Sources/Account/Folder.swift rename to Modules/Account/Sources/Account/Folder.swift diff --git a/Account/Sources/Account/LocalAccount/InitialFeedDownloader.swift b/Modules/Account/Sources/Account/LocalAccount/InitialFeedDownloader.swift similarity index 100% rename from Account/Sources/Account/LocalAccount/InitialFeedDownloader.swift rename to Modules/Account/Sources/Account/LocalAccount/InitialFeedDownloader.swift diff --git a/Account/Sources/Account/LocalAccount/LocalAccountDelegate.swift b/Modules/Account/Sources/Account/LocalAccount/LocalAccountDelegate.swift similarity index 100% rename from Account/Sources/Account/LocalAccount/LocalAccountDelegate.swift rename to Modules/Account/Sources/Account/LocalAccount/LocalAccountDelegate.swift diff --git a/Account/Sources/Account/LocalAccount/LocalAccountRefresher.swift b/Modules/Account/Sources/Account/LocalAccount/LocalAccountRefresher.swift similarity index 100% rename from Account/Sources/Account/LocalAccount/LocalAccountRefresher.swift rename to Modules/Account/Sources/Account/LocalAccount/LocalAccountRefresher.swift diff --git a/Account/Sources/Account/NewsBlur/Internals/NewsBlurAPICaller+Internal.swift b/Modules/Account/Sources/Account/NewsBlur/Internals/NewsBlurAPICaller+Internal.swift similarity index 100% rename from Account/Sources/Account/NewsBlur/Internals/NewsBlurAPICaller+Internal.swift rename to Modules/Account/Sources/Account/NewsBlur/Internals/NewsBlurAPICaller+Internal.swift diff --git a/Account/Sources/Account/NewsBlur/Internals/NewsBlurAccountDelegate+Internal.swift b/Modules/Account/Sources/Account/NewsBlur/Internals/NewsBlurAccountDelegate+Internal.swift similarity index 100% rename from Account/Sources/Account/NewsBlur/Internals/NewsBlurAccountDelegate+Internal.swift rename to Modules/Account/Sources/Account/NewsBlur/Internals/NewsBlurAccountDelegate+Internal.swift diff --git a/Account/Sources/Account/NewsBlur/Models/NewsBlurFeed.swift b/Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurFeed.swift similarity index 100% rename from Account/Sources/Account/NewsBlur/Models/NewsBlurFeed.swift rename to Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurFeed.swift diff --git a/Account/Sources/Account/NewsBlur/Models/NewsBlurFeedChange.swift b/Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurFeedChange.swift similarity index 100% rename from Account/Sources/Account/NewsBlur/Models/NewsBlurFeedChange.swift rename to Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurFeedChange.swift diff --git a/Account/Sources/Account/NewsBlur/Models/NewsBlurFolderChange.swift b/Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurFolderChange.swift similarity index 100% rename from Account/Sources/Account/NewsBlur/Models/NewsBlurFolderChange.swift rename to Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurFolderChange.swift diff --git a/Account/Sources/Account/NewsBlur/Models/NewsBlurGenericCodingKeys.swift b/Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurGenericCodingKeys.swift similarity index 100% rename from Account/Sources/Account/NewsBlur/Models/NewsBlurGenericCodingKeys.swift rename to Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurGenericCodingKeys.swift diff --git a/Account/Sources/Account/NewsBlur/Models/NewsBlurLoginResponse.swift b/Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurLoginResponse.swift similarity index 100% rename from Account/Sources/Account/NewsBlur/Models/NewsBlurLoginResponse.swift rename to Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurLoginResponse.swift diff --git a/Account/Sources/Account/NewsBlur/Models/NewsBlurStory.swift b/Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurStory.swift similarity index 100% rename from Account/Sources/Account/NewsBlur/Models/NewsBlurStory.swift rename to Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurStory.swift diff --git a/Account/Sources/Account/NewsBlur/Models/NewsBlurStoryHash.swift b/Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurStoryHash.swift similarity index 100% rename from Account/Sources/Account/NewsBlur/Models/NewsBlurStoryHash.swift rename to Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurStoryHash.swift diff --git a/Account/Sources/Account/NewsBlur/Models/NewsBlurStoryStatusChange.swift b/Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurStoryStatusChange.swift similarity index 100% rename from Account/Sources/Account/NewsBlur/Models/NewsBlurStoryStatusChange.swift rename to Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurStoryStatusChange.swift diff --git a/Account/Sources/Account/NewsBlur/NewsBlurAPICaller.swift b/Modules/Account/Sources/Account/NewsBlur/NewsBlurAPICaller.swift similarity index 100% rename from Account/Sources/Account/NewsBlur/NewsBlurAPICaller.swift rename to Modules/Account/Sources/Account/NewsBlur/NewsBlurAPICaller.swift diff --git a/Account/Sources/Account/NewsBlur/NewsBlurAccountDelegate.swift b/Modules/Account/Sources/Account/NewsBlur/NewsBlurAccountDelegate.swift similarity index 100% rename from Account/Sources/Account/NewsBlur/NewsBlurAccountDelegate.swift rename to Modules/Account/Sources/Account/NewsBlur/NewsBlurAccountDelegate.swift diff --git a/Account/Sources/Account/OPMLFile.swift b/Modules/Account/Sources/Account/OPMLFile.swift similarity index 100% rename from Account/Sources/Account/OPMLFile.swift rename to Modules/Account/Sources/Account/OPMLFile.swift diff --git a/Account/Sources/Account/OPMLNormalizer.swift b/Modules/Account/Sources/Account/OPMLNormalizer.swift similarity index 100% rename from Account/Sources/Account/OPMLNormalizer.swift rename to Modules/Account/Sources/Account/OPMLNormalizer.swift diff --git a/Account/Sources/Account/ReaderAPI/ReaderAPIAccountDelegate.swift b/Modules/Account/Sources/Account/ReaderAPI/ReaderAPIAccountDelegate.swift similarity index 100% rename from Account/Sources/Account/ReaderAPI/ReaderAPIAccountDelegate.swift rename to Modules/Account/Sources/Account/ReaderAPI/ReaderAPIAccountDelegate.swift diff --git a/Account/Sources/Account/ReaderAPI/ReaderAPICaller.swift b/Modules/Account/Sources/Account/ReaderAPI/ReaderAPICaller.swift similarity index 100% rename from Account/Sources/Account/ReaderAPI/ReaderAPICaller.swift rename to Modules/Account/Sources/Account/ReaderAPI/ReaderAPICaller.swift diff --git a/Account/Sources/Account/ReaderAPI/ReaderAPIEntry.swift b/Modules/Account/Sources/Account/ReaderAPI/ReaderAPIEntry.swift similarity index 100% rename from Account/Sources/Account/ReaderAPI/ReaderAPIEntry.swift rename to Modules/Account/Sources/Account/ReaderAPI/ReaderAPIEntry.swift diff --git a/Account/Sources/Account/ReaderAPI/ReaderAPISubscription.swift b/Modules/Account/Sources/Account/ReaderAPI/ReaderAPISubscription.swift similarity index 100% rename from Account/Sources/Account/ReaderAPI/ReaderAPISubscription.swift rename to Modules/Account/Sources/Account/ReaderAPI/ReaderAPISubscription.swift diff --git a/Account/Sources/Account/ReaderAPI/ReaderAPITag.swift b/Modules/Account/Sources/Account/ReaderAPI/ReaderAPITag.swift similarity index 100% rename from Account/Sources/Account/ReaderAPI/ReaderAPITag.swift rename to Modules/Account/Sources/Account/ReaderAPI/ReaderAPITag.swift diff --git a/Account/Sources/Account/ReaderAPI/ReaderAPITagging.swift b/Modules/Account/Sources/Account/ReaderAPI/ReaderAPITagging.swift similarity index 100% rename from Account/Sources/Account/ReaderAPI/ReaderAPITagging.swift rename to Modules/Account/Sources/Account/ReaderAPI/ReaderAPITagging.swift diff --git a/Account/Sources/Account/ReaderAPI/ReaderAPIUnreadEntry.swift b/Modules/Account/Sources/Account/ReaderAPI/ReaderAPIUnreadEntry.swift similarity index 100% rename from Account/Sources/Account/ReaderAPI/ReaderAPIUnreadEntry.swift rename to Modules/Account/Sources/Account/ReaderAPI/ReaderAPIUnreadEntry.swift diff --git a/Account/Sources/Account/ReaderAPI/ReaderAPIVariant.swift b/Modules/Account/Sources/Account/ReaderAPI/ReaderAPIVariant.swift similarity index 100% rename from Account/Sources/Account/ReaderAPI/ReaderAPIVariant.swift rename to Modules/Account/Sources/Account/ReaderAPI/ReaderAPIVariant.swift diff --git a/Account/Sources/Account/SidebarItem.swift b/Modules/Account/Sources/Account/SidebarItem.swift similarity index 100% rename from Account/Sources/Account/SidebarItem.swift rename to Modules/Account/Sources/Account/SidebarItem.swift diff --git a/Account/Sources/Account/SidebarItemIdentifier.swift b/Modules/Account/Sources/Account/SidebarItemIdentifier.swift similarity index 100% rename from Account/Sources/Account/SidebarItemIdentifier.swift rename to Modules/Account/Sources/Account/SidebarItemIdentifier.swift diff --git a/Account/Sources/Account/SingleArticleFetcher.swift b/Modules/Account/Sources/Account/SingleArticleFetcher.swift similarity index 100% rename from Account/Sources/Account/SingleArticleFetcher.swift rename to Modules/Account/Sources/Account/SingleArticleFetcher.swift diff --git a/Account/Sources/Account/URLRequest+Account.swift b/Modules/Account/Sources/Account/URLRequest+Account.swift similarity index 100% rename from Account/Sources/Account/URLRequest+Account.swift rename to Modules/Account/Sources/Account/URLRequest+Account.swift diff --git a/Account/Sources/Account/UnreadCountProvider.swift b/Modules/Account/Sources/Account/UnreadCountProvider.swift similarity index 100% rename from Account/Sources/Account/UnreadCountProvider.swift rename to Modules/Account/Sources/Account/UnreadCountProvider.swift diff --git a/Account/Tests/AccountTests/AccountCredentialsTest.swift b/Modules/Account/Tests/AccountTests/AccountCredentialsTest.swift similarity index 100% rename from Account/Tests/AccountTests/AccountCredentialsTest.swift rename to Modules/Account/Tests/AccountTests/AccountCredentialsTest.swift diff --git a/Account/Tests/AccountTests/Feedbin/AccountFeedbinFolderContentsSyncTest.swift b/Modules/Account/Tests/AccountTests/Feedbin/AccountFeedbinFolderContentsSyncTest.swift similarity index 100% rename from Account/Tests/AccountTests/Feedbin/AccountFeedbinFolderContentsSyncTest.swift rename to Modules/Account/Tests/AccountTests/Feedbin/AccountFeedbinFolderContentsSyncTest.swift diff --git a/Account/Tests/AccountTests/Feedbin/AccountFeedbinFolderSyncTest.swift b/Modules/Account/Tests/AccountTests/Feedbin/AccountFeedbinFolderSyncTest.swift similarity index 100% rename from Account/Tests/AccountTests/Feedbin/AccountFeedbinFolderSyncTest.swift rename to Modules/Account/Tests/AccountTests/Feedbin/AccountFeedbinFolderSyncTest.swift diff --git a/Account/Tests/AccountTests/Feedbin/AccountFeedbinSyncTest.swift b/Modules/Account/Tests/AccountTests/Feedbin/AccountFeedbinSyncTest.swift similarity index 100% rename from Account/Tests/AccountTests/Feedbin/AccountFeedbinSyncTest.swift rename to Modules/Account/Tests/AccountTests/Feedbin/AccountFeedbinSyncTest.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyCheckpointOperationTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyCheckpointOperationTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyCheckpointOperationTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyCheckpointOperationTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyCollectionParserTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyCollectionParserTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyCollectionParserTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyCollectionParserTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyCreateFeedsForCollectionFoldersOperationTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyCreateFeedsForCollectionFoldersOperationTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyCreateFeedsForCollectionFoldersOperationTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyCreateFeedsForCollectionFoldersOperationTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyEntryParserTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyEntryParserTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyEntryParserTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyEntryParserTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyFeedParserTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyFeedParserTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyFeedParserTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyFeedParserTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyGetCollectionsOperationTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyGetCollectionsOperationTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyGetCollectionsOperationTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyGetCollectionsOperationTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyGetStreamContentsOperationTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyGetStreamContentsOperationTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyGetStreamContentsOperationTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyGetStreamContentsOperationTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyGetStreamIdsOperationTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyGetStreamIdsOperationTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyGetStreamIdsOperationTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyGetStreamIdsOperationTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyLogoutOperationTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyLogoutOperationTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyLogoutOperationTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyLogoutOperationTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyMirrorCollectionsAsFoldersOperationTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyMirrorCollectionsAsFoldersOperationTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyMirrorCollectionsAsFoldersOperationTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyMirrorCollectionsAsFoldersOperationTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyOperationTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyOperationTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyOperationTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyOperationTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyOrganiseParsedItemsByFeedOperationTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyOrganiseParsedItemsByFeedOperationTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyOrganiseParsedItemsByFeedOperationTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyOrganiseParsedItemsByFeedOperationTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyRefreshAccessTokenOperationTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyRefreshAccessTokenOperationTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyRefreshAccessTokenOperationTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyRefreshAccessTokenOperationTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyResourceIdTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyResourceIdTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyResourceIdTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyResourceIdTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlySendArticleStatusesOperationTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlySendArticleStatusesOperationTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlySendArticleStatusesOperationTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlySendArticleStatusesOperationTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlySyncAllMockResponseProvider.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlySyncAllMockResponseProvider.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlySyncAllMockResponseProvider.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlySyncAllMockResponseProvider.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlySyncStreamContentsOperationTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlySyncStreamContentsOperationTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlySyncStreamContentsOperationTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlySyncStreamContentsOperationTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyTestSupport.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyTestSupport.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyTestSupport.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyTestSupport.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyTextSanitizationTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyTextSanitizationTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyTextSanitizationTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyTextSanitizationTests.swift diff --git a/Account/Tests/AccountTests/Feedly/TestGetCollectionsService.swift b/Modules/Account/Tests/AccountTests/Feedly/TestGetCollectionsService.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/TestGetCollectionsService.swift rename to Modules/Account/Tests/AccountTests/Feedly/TestGetCollectionsService.swift diff --git a/Account/Tests/AccountTests/Feedly/TestGetEntriesService.swift b/Modules/Account/Tests/AccountTests/Feedly/TestGetEntriesService.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/TestGetEntriesService.swift rename to Modules/Account/Tests/AccountTests/Feedly/TestGetEntriesService.swift diff --git a/Account/Tests/AccountTests/Feedly/TestGetPagedStreamContentsService.swift b/Modules/Account/Tests/AccountTests/Feedly/TestGetPagedStreamContentsService.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/TestGetPagedStreamContentsService.swift rename to Modules/Account/Tests/AccountTests/Feedly/TestGetPagedStreamContentsService.swift diff --git a/Account/Tests/AccountTests/Feedly/TestGetPagedStreamIdsService.swift b/Modules/Account/Tests/AccountTests/Feedly/TestGetPagedStreamIdsService.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/TestGetPagedStreamIdsService.swift rename to Modules/Account/Tests/AccountTests/Feedly/TestGetPagedStreamIdsService.swift diff --git a/Account/Tests/AccountTests/Feedly/TestGetStreamContentsService.swift b/Modules/Account/Tests/AccountTests/Feedly/TestGetStreamContentsService.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/TestGetStreamContentsService.swift rename to Modules/Account/Tests/AccountTests/Feedly/TestGetStreamContentsService.swift diff --git a/Account/Tests/AccountTests/Feedly/TestGetStreamIdsService.swift b/Modules/Account/Tests/AccountTests/Feedly/TestGetStreamIdsService.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/TestGetStreamIdsService.swift rename to Modules/Account/Tests/AccountTests/Feedly/TestGetStreamIdsService.swift diff --git a/Account/Tests/AccountTests/Feedly/TestMarkArticlesService.swift b/Modules/Account/Tests/AccountTests/Feedly/TestMarkArticlesService.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/TestMarkArticlesService.swift rename to Modules/Account/Tests/AccountTests/Feedly/TestMarkArticlesService.swift diff --git a/Account/Tests/AccountTests/JSON/feedly_collections_initial.json b/Modules/Account/Tests/AccountTests/JSON/feedly_collections_initial.json similarity index 100% rename from Account/Tests/AccountTests/JSON/feedly_collections_initial.json rename to Modules/Account/Tests/AccountTests/JSON/feedly_collections_initial.json diff --git a/Account/Tests/AccountTests/JSON/feedly_macintosh_initial.json b/Modules/Account/Tests/AccountTests/JSON/feedly_macintosh_initial.json similarity index 100% rename from Account/Tests/AccountTests/JSON/feedly_macintosh_initial.json rename to Modules/Account/Tests/AccountTests/JSON/feedly_macintosh_initial.json diff --git a/Account/Tests/AccountTests/JSON/feedly_unreads_1000.json b/Modules/Account/Tests/AccountTests/JSON/feedly_unreads_1000.json similarity index 100% rename from Account/Tests/AccountTests/JSON/feedly_unreads_1000.json rename to Modules/Account/Tests/AccountTests/JSON/feedly_unreads_1000.json diff --git a/Account/Tests/AccountTests/JSON/feedly_unreads_initial.json b/Modules/Account/Tests/AccountTests/JSON/feedly_unreads_initial.json similarity index 100% rename from Account/Tests/AccountTests/JSON/feedly_unreads_initial.json rename to Modules/Account/Tests/AccountTests/JSON/feedly_unreads_initial.json diff --git a/Account/Tests/AccountTests/JSON/subscriptions_add.json b/Modules/Account/Tests/AccountTests/JSON/subscriptions_add.json similarity index 100% rename from Account/Tests/AccountTests/JSON/subscriptions_add.json rename to Modules/Account/Tests/AccountTests/JSON/subscriptions_add.json diff --git a/Account/Tests/AccountTests/JSON/subscriptions_initial.json b/Modules/Account/Tests/AccountTests/JSON/subscriptions_initial.json similarity index 100% rename from Account/Tests/AccountTests/JSON/subscriptions_initial.json rename to Modules/Account/Tests/AccountTests/JSON/subscriptions_initial.json diff --git a/Account/Tests/AccountTests/JSON/taggings_add.json b/Modules/Account/Tests/AccountTests/JSON/taggings_add.json similarity index 100% rename from Account/Tests/AccountTests/JSON/taggings_add.json rename to Modules/Account/Tests/AccountTests/JSON/taggings_add.json diff --git a/Account/Tests/AccountTests/JSON/taggings_delete.json b/Modules/Account/Tests/AccountTests/JSON/taggings_delete.json similarity index 100% rename from Account/Tests/AccountTests/JSON/taggings_delete.json rename to Modules/Account/Tests/AccountTests/JSON/taggings_delete.json diff --git a/Account/Tests/AccountTests/JSON/taggings_initial.json b/Modules/Account/Tests/AccountTests/JSON/taggings_initial.json similarity index 100% rename from Account/Tests/AccountTests/JSON/taggings_initial.json rename to Modules/Account/Tests/AccountTests/JSON/taggings_initial.json diff --git a/Account/Tests/AccountTests/JSON/tags_add.json b/Modules/Account/Tests/AccountTests/JSON/tags_add.json similarity index 100% rename from Account/Tests/AccountTests/JSON/tags_add.json rename to Modules/Account/Tests/AccountTests/JSON/tags_add.json diff --git a/Account/Tests/AccountTests/JSON/tags_delete.json b/Modules/Account/Tests/AccountTests/JSON/tags_delete.json similarity index 100% rename from Account/Tests/AccountTests/JSON/tags_delete.json rename to Modules/Account/Tests/AccountTests/JSON/tags_delete.json diff --git a/Account/Tests/AccountTests/JSON/tags_initial.json b/Modules/Account/Tests/AccountTests/JSON/tags_initial.json similarity index 100% rename from Account/Tests/AccountTests/JSON/tags_initial.json rename to Modules/Account/Tests/AccountTests/JSON/tags_initial.json diff --git a/Account/Tests/AccountTests/TestAccountManager.swift b/Modules/Account/Tests/AccountTests/TestAccountManager.swift similarity index 100% rename from Account/Tests/AccountTests/TestAccountManager.swift rename to Modules/Account/Tests/AccountTests/TestAccountManager.swift diff --git a/Account/Tests/AccountTests/TestTransport.swift b/Modules/Account/Tests/AccountTests/TestTransport.swift similarity index 100% rename from Account/Tests/AccountTests/TestTransport.swift rename to Modules/Account/Tests/AccountTests/TestTransport.swift diff --git a/Articles/.gitignore b/Modules/Articles/.gitignore similarity index 100% rename from Articles/.gitignore rename to Modules/Articles/.gitignore diff --git a/Articles/.swiftpm/xcode/xcshareddata/xcschemes/Articles.xcscheme b/Modules/Articles/.swiftpm/xcode/xcshareddata/xcschemes/Articles.xcscheme similarity index 100% rename from Articles/.swiftpm/xcode/xcshareddata/xcschemes/Articles.xcscheme rename to Modules/Articles/.swiftpm/xcode/xcshareddata/xcschemes/Articles.xcscheme diff --git a/Articles/Package.swift b/Modules/Articles/Package.swift similarity index 100% rename from Articles/Package.swift rename to Modules/Articles/Package.swift diff --git a/Articles/README.md b/Modules/Articles/README.md similarity index 100% rename from Articles/README.md rename to Modules/Articles/README.md diff --git a/Articles/Sources/Articles/Article.swift b/Modules/Articles/Sources/Articles/Article.swift similarity index 100% rename from Articles/Sources/Articles/Article.swift rename to Modules/Articles/Sources/Articles/Article.swift diff --git a/Articles/Sources/Articles/ArticleStatus.swift b/Modules/Articles/Sources/Articles/ArticleStatus.swift similarity index 100% rename from Articles/Sources/Articles/ArticleStatus.swift rename to Modules/Articles/Sources/Articles/ArticleStatus.swift diff --git a/Articles/Sources/Articles/Author.swift b/Modules/Articles/Sources/Articles/Author.swift similarity index 100% rename from Articles/Sources/Articles/Author.swift rename to Modules/Articles/Sources/Articles/Author.swift diff --git a/Articles/Sources/Articles/DatabaseID.swift b/Modules/Articles/Sources/Articles/DatabaseID.swift similarity index 100% rename from Articles/Sources/Articles/DatabaseID.swift rename to Modules/Articles/Sources/Articles/DatabaseID.swift diff --git a/ArticlesDatabase/.gitignore b/Modules/ArticlesDatabase/.gitignore similarity index 100% rename from ArticlesDatabase/.gitignore rename to Modules/ArticlesDatabase/.gitignore diff --git a/ArticlesDatabase/Package.swift b/Modules/ArticlesDatabase/Package.swift similarity index 100% rename from ArticlesDatabase/Package.swift rename to Modules/ArticlesDatabase/Package.swift diff --git a/ArticlesDatabase/README.md b/Modules/ArticlesDatabase/README.md similarity index 100% rename from ArticlesDatabase/README.md rename to Modules/ArticlesDatabase/README.md diff --git a/ArticlesDatabase/Sources/ArticlesDatabase/ArticlesDatabase.swift b/Modules/ArticlesDatabase/Sources/ArticlesDatabase/ArticlesDatabase.swift similarity index 100% rename from ArticlesDatabase/Sources/ArticlesDatabase/ArticlesDatabase.swift rename to Modules/ArticlesDatabase/Sources/ArticlesDatabase/ArticlesDatabase.swift diff --git a/ArticlesDatabase/Sources/ArticlesDatabase/ArticlesTable.swift b/Modules/ArticlesDatabase/Sources/ArticlesDatabase/ArticlesTable.swift similarity index 100% rename from ArticlesDatabase/Sources/ArticlesDatabase/ArticlesTable.swift rename to Modules/ArticlesDatabase/Sources/ArticlesDatabase/ArticlesTable.swift diff --git a/ArticlesDatabase/Sources/ArticlesDatabase/AuthorsTable.swift b/Modules/ArticlesDatabase/Sources/ArticlesDatabase/AuthorsTable.swift similarity index 100% rename from ArticlesDatabase/Sources/ArticlesDatabase/AuthorsTable.swift rename to Modules/ArticlesDatabase/Sources/ArticlesDatabase/AuthorsTable.swift diff --git a/ArticlesDatabase/Sources/ArticlesDatabase/Constants.swift b/Modules/ArticlesDatabase/Sources/ArticlesDatabase/Constants.swift similarity index 100% rename from ArticlesDatabase/Sources/ArticlesDatabase/Constants.swift rename to Modules/ArticlesDatabase/Sources/ArticlesDatabase/Constants.swift diff --git a/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/Article+Database.swift b/Modules/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/Article+Database.swift similarity index 100% rename from ArticlesDatabase/Sources/ArticlesDatabase/Extensions/Article+Database.swift rename to Modules/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/Article+Database.swift diff --git a/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/ArticleStatus+Database.swift b/Modules/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/ArticleStatus+Database.swift similarity index 100% rename from ArticlesDatabase/Sources/ArticlesDatabase/Extensions/ArticleStatus+Database.swift rename to Modules/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/ArticleStatus+Database.swift diff --git a/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/Author+Database.swift b/Modules/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/Author+Database.swift similarity index 100% rename from ArticlesDatabase/Sources/ArticlesDatabase/Extensions/Author+Database.swift rename to Modules/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/Author+Database.swift diff --git a/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/DatabaseObject+Database.swift b/Modules/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/DatabaseObject+Database.swift similarity index 100% rename from ArticlesDatabase/Sources/ArticlesDatabase/Extensions/DatabaseObject+Database.swift rename to Modules/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/DatabaseObject+Database.swift diff --git a/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/ParsedArticle+Database.swift b/Modules/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/ParsedArticle+Database.swift similarity index 100% rename from ArticlesDatabase/Sources/ArticlesDatabase/Extensions/ParsedArticle+Database.swift rename to Modules/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/ParsedArticle+Database.swift diff --git a/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/RelatedObjectsMap+Database.swift b/Modules/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/RelatedObjectsMap+Database.swift similarity index 100% rename from ArticlesDatabase/Sources/ArticlesDatabase/Extensions/RelatedObjectsMap+Database.swift rename to Modules/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/RelatedObjectsMap+Database.swift diff --git a/ArticlesDatabase/Sources/ArticlesDatabase/Operations/FetchAllUnreadCountsOperation.swift b/Modules/ArticlesDatabase/Sources/ArticlesDatabase/Operations/FetchAllUnreadCountsOperation.swift similarity index 100% rename from ArticlesDatabase/Sources/ArticlesDatabase/Operations/FetchAllUnreadCountsOperation.swift rename to Modules/ArticlesDatabase/Sources/ArticlesDatabase/Operations/FetchAllUnreadCountsOperation.swift diff --git a/ArticlesDatabase/Sources/ArticlesDatabase/Operations/FetchFeedUnreadCountOperation.swift b/Modules/ArticlesDatabase/Sources/ArticlesDatabase/Operations/FetchFeedUnreadCountOperation.swift similarity index 100% rename from ArticlesDatabase/Sources/ArticlesDatabase/Operations/FetchFeedUnreadCountOperation.swift rename to Modules/ArticlesDatabase/Sources/ArticlesDatabase/Operations/FetchFeedUnreadCountOperation.swift diff --git a/ArticlesDatabase/Sources/ArticlesDatabase/Operations/FetchUnreadCountsForFeedsOperation.swift b/Modules/ArticlesDatabase/Sources/ArticlesDatabase/Operations/FetchUnreadCountsForFeedsOperation.swift similarity index 100% rename from ArticlesDatabase/Sources/ArticlesDatabase/Operations/FetchUnreadCountsForFeedsOperation.swift rename to Modules/ArticlesDatabase/Sources/ArticlesDatabase/Operations/FetchUnreadCountsForFeedsOperation.swift diff --git a/ArticlesDatabase/Sources/ArticlesDatabase/SearchTable.swift b/Modules/ArticlesDatabase/Sources/ArticlesDatabase/SearchTable.swift similarity index 100% rename from ArticlesDatabase/Sources/ArticlesDatabase/SearchTable.swift rename to Modules/ArticlesDatabase/Sources/ArticlesDatabase/SearchTable.swift diff --git a/ArticlesDatabase/Sources/ArticlesDatabase/StatusesTable.swift b/Modules/ArticlesDatabase/Sources/ArticlesDatabase/StatusesTable.swift similarity index 100% rename from ArticlesDatabase/Sources/ArticlesDatabase/StatusesTable.swift rename to Modules/ArticlesDatabase/Sources/ArticlesDatabase/StatusesTable.swift diff --git a/Parser/.gitignore b/Modules/Parser/.gitignore similarity index 100% rename from Parser/.gitignore rename to Modules/Parser/.gitignore diff --git a/Parser/.swiftpm/xcode/xcshareddata/xcschemes/Parser.xcscheme b/Modules/Parser/.swiftpm/xcode/xcshareddata/xcschemes/Parser.xcscheme similarity index 100% rename from Parser/.swiftpm/xcode/xcshareddata/xcschemes/Parser.xcscheme rename to Modules/Parser/.swiftpm/xcode/xcshareddata/xcschemes/Parser.xcscheme diff --git a/Parser/.swiftpm/xcode/xcshareddata/xcschemes/ParserTests.xcscheme b/Modules/Parser/.swiftpm/xcode/xcshareddata/xcschemes/ParserTests.xcscheme similarity index 100% rename from Parser/.swiftpm/xcode/xcshareddata/xcschemes/ParserTests.xcscheme rename to Modules/Parser/.swiftpm/xcode/xcshareddata/xcschemes/ParserTests.xcscheme diff --git a/Parser/Package.swift b/Modules/Parser/Package.swift similarity index 100% rename from Parser/Package.swift rename to Modules/Parser/Package.swift diff --git a/Parser/Sources/Parser/DateParser/DateParser.swift b/Modules/Parser/Sources/Parser/DateParser/DateParser.swift similarity index 100% rename from Parser/Sources/Parser/DateParser/DateParser.swift rename to Modules/Parser/Sources/Parser/DateParser/DateParser.swift diff --git a/Parser/Sources/Parser/FeedParser/Feeds/FeedParser.swift b/Modules/Parser/Sources/Parser/FeedParser/Feeds/FeedParser.swift similarity index 100% rename from Parser/Sources/Parser/FeedParser/Feeds/FeedParser.swift rename to Modules/Parser/Sources/Parser/FeedParser/Feeds/FeedParser.swift diff --git a/Parser/Sources/Parser/FeedParser/Feeds/FeedParserError.swift b/Modules/Parser/Sources/Parser/FeedParser/Feeds/FeedParserError.swift similarity index 100% rename from Parser/Sources/Parser/FeedParser/Feeds/FeedParserError.swift rename to Modules/Parser/Sources/Parser/FeedParser/Feeds/FeedParserError.swift diff --git a/Parser/Sources/Parser/FeedParser/Feeds/FeedType.swift b/Modules/Parser/Sources/Parser/FeedParser/Feeds/FeedType.swift similarity index 100% rename from Parser/Sources/Parser/FeedParser/Feeds/FeedType.swift rename to Modules/Parser/Sources/Parser/FeedParser/Feeds/FeedType.swift diff --git a/Parser/Sources/Parser/FeedParser/Feeds/JSON/JSONFeedParser.swift b/Modules/Parser/Sources/Parser/FeedParser/Feeds/JSON/JSONFeedParser.swift similarity index 100% rename from Parser/Sources/Parser/FeedParser/Feeds/JSON/JSONFeedParser.swift rename to Modules/Parser/Sources/Parser/FeedParser/Feeds/JSON/JSONFeedParser.swift diff --git a/Parser/Sources/Parser/FeedParser/Feeds/JSON/RSSInJSONParser.swift b/Modules/Parser/Sources/Parser/FeedParser/Feeds/JSON/RSSInJSONParser.swift similarity index 100% rename from Parser/Sources/Parser/FeedParser/Feeds/JSON/RSSInJSONParser.swift rename to Modules/Parser/Sources/Parser/FeedParser/Feeds/JSON/RSSInJSONParser.swift diff --git a/Parser/Sources/Parser/FeedParser/Feeds/ParsedAttachment.swift b/Modules/Parser/Sources/Parser/FeedParser/Feeds/ParsedAttachment.swift similarity index 100% rename from Parser/Sources/Parser/FeedParser/Feeds/ParsedAttachment.swift rename to Modules/Parser/Sources/Parser/FeedParser/Feeds/ParsedAttachment.swift diff --git a/Parser/Sources/Parser/FeedParser/Feeds/ParsedAuthor.swift b/Modules/Parser/Sources/Parser/FeedParser/Feeds/ParsedAuthor.swift similarity index 100% rename from Parser/Sources/Parser/FeedParser/Feeds/ParsedAuthor.swift rename to Modules/Parser/Sources/Parser/FeedParser/Feeds/ParsedAuthor.swift diff --git a/Parser/Sources/Parser/FeedParser/Feeds/ParsedFeed.swift b/Modules/Parser/Sources/Parser/FeedParser/Feeds/ParsedFeed.swift similarity index 100% rename from Parser/Sources/Parser/FeedParser/Feeds/ParsedFeed.swift rename to Modules/Parser/Sources/Parser/FeedParser/Feeds/ParsedFeed.swift diff --git a/Parser/Sources/Parser/FeedParser/Feeds/ParsedHub.swift b/Modules/Parser/Sources/Parser/FeedParser/Feeds/ParsedHub.swift similarity index 100% rename from Parser/Sources/Parser/FeedParser/Feeds/ParsedHub.swift rename to Modules/Parser/Sources/Parser/FeedParser/Feeds/ParsedHub.swift diff --git a/Parser/Sources/Parser/FeedParser/Feeds/ParsedItem.swift b/Modules/Parser/Sources/Parser/FeedParser/Feeds/ParsedItem.swift similarity index 100% rename from Parser/Sources/Parser/FeedParser/Feeds/ParsedItem.swift rename to Modules/Parser/Sources/Parser/FeedParser/Feeds/ParsedItem.swift diff --git a/Parser/Sources/Parser/FeedParser/Feeds/XML/AtomParser.swift b/Modules/Parser/Sources/Parser/FeedParser/Feeds/XML/AtomParser.swift similarity index 100% rename from Parser/Sources/Parser/FeedParser/Feeds/XML/AtomParser.swift rename to Modules/Parser/Sources/Parser/FeedParser/Feeds/XML/AtomParser.swift diff --git a/Parser/Sources/Parser/FeedParser/Feeds/XML/RSSArticle.swift b/Modules/Parser/Sources/Parser/FeedParser/Feeds/XML/RSSArticle.swift similarity index 100% rename from Parser/Sources/Parser/FeedParser/Feeds/XML/RSSArticle.swift rename to Modules/Parser/Sources/Parser/FeedParser/Feeds/XML/RSSArticle.swift diff --git a/Parser/Sources/Parser/FeedParser/Feeds/XML/RSSAuthor.swift b/Modules/Parser/Sources/Parser/FeedParser/Feeds/XML/RSSAuthor.swift similarity index 100% rename from Parser/Sources/Parser/FeedParser/Feeds/XML/RSSAuthor.swift rename to Modules/Parser/Sources/Parser/FeedParser/Feeds/XML/RSSAuthor.swift diff --git a/Parser/Sources/Parser/FeedParser/Feeds/XML/RSSEnclosure.swift b/Modules/Parser/Sources/Parser/FeedParser/Feeds/XML/RSSEnclosure.swift similarity index 100% rename from Parser/Sources/Parser/FeedParser/Feeds/XML/RSSEnclosure.swift rename to Modules/Parser/Sources/Parser/FeedParser/Feeds/XML/RSSEnclosure.swift diff --git a/Parser/Sources/Parser/FeedParser/Feeds/XML/RSSFeed.swift b/Modules/Parser/Sources/Parser/FeedParser/Feeds/XML/RSSFeed.swift similarity index 100% rename from Parser/Sources/Parser/FeedParser/Feeds/XML/RSSFeed.swift rename to Modules/Parser/Sources/Parser/FeedParser/Feeds/XML/RSSFeed.swift diff --git a/Parser/Sources/Parser/FeedParser/Feeds/XML/RSSFeedTransformer.swift b/Modules/Parser/Sources/Parser/FeedParser/Feeds/XML/RSSFeedTransformer.swift similarity index 100% rename from Parser/Sources/Parser/FeedParser/Feeds/XML/RSSFeedTransformer.swift rename to Modules/Parser/Sources/Parser/FeedParser/Feeds/XML/RSSFeedTransformer.swift diff --git a/Parser/Sources/Parser/FeedParser/Feeds/XML/RSSParser.swift b/Modules/Parser/Sources/Parser/FeedParser/Feeds/XML/RSSParser.swift similarity index 100% rename from Parser/Sources/Parser/FeedParser/Feeds/XML/RSSParser.swift rename to Modules/Parser/Sources/Parser/FeedParser/Feeds/XML/RSSParser.swift diff --git a/Parser/Sources/Parser/FeedParser/JSON/JSONTypes.swift b/Modules/Parser/Sources/Parser/FeedParser/JSON/JSONTypes.swift similarity index 100% rename from Parser/Sources/Parser/FeedParser/JSON/JSONTypes.swift rename to Modules/Parser/Sources/Parser/FeedParser/JSON/JSONTypes.swift diff --git a/Parser/Sources/Parser/FeedParser/JSON/JSONUtilities.swift b/Modules/Parser/Sources/Parser/FeedParser/JSON/JSONUtilities.swift similarity index 100% rename from Parser/Sources/Parser/FeedParser/JSON/JSONUtilities.swift rename to Modules/Parser/Sources/Parser/FeedParser/JSON/JSONUtilities.swift diff --git a/Parser/Sources/Parser/HTMLParser/HTMLEntityDecoder.swift b/Modules/Parser/Sources/Parser/HTMLParser/HTMLEntityDecoder.swift similarity index 100% rename from Parser/Sources/Parser/HTMLParser/HTMLEntityDecoder.swift rename to Modules/Parser/Sources/Parser/HTMLParser/HTMLEntityDecoder.swift diff --git a/Parser/Sources/Parser/HTMLParser/HTMLLink.swift b/Modules/Parser/Sources/Parser/HTMLParser/HTMLLink.swift similarity index 100% rename from Parser/Sources/Parser/HTMLParser/HTMLLink.swift rename to Modules/Parser/Sources/Parser/HTMLParser/HTMLLink.swift diff --git a/Parser/Sources/Parser/HTMLParser/HTMLLinkParser.swift b/Modules/Parser/Sources/Parser/HTMLParser/HTMLLinkParser.swift similarity index 100% rename from Parser/Sources/Parser/HTMLParser/HTMLLinkParser.swift rename to Modules/Parser/Sources/Parser/HTMLParser/HTMLLinkParser.swift diff --git a/Parser/Sources/Parser/HTMLParser/HTMLMetadata.swift b/Modules/Parser/Sources/Parser/HTMLParser/HTMLMetadata.swift similarity index 100% rename from Parser/Sources/Parser/HTMLParser/HTMLMetadata.swift rename to Modules/Parser/Sources/Parser/HTMLParser/HTMLMetadata.swift diff --git a/Parser/Sources/Parser/HTMLParser/HTMLMetadataParser.swift b/Modules/Parser/Sources/Parser/HTMLParser/HTMLMetadataParser.swift similarity index 100% rename from Parser/Sources/Parser/HTMLParser/HTMLMetadataParser.swift rename to Modules/Parser/Sources/Parser/HTMLParser/HTMLMetadataParser.swift diff --git a/Parser/Sources/Parser/HTMLParser/HTMLTag.swift b/Modules/Parser/Sources/Parser/HTMLParser/HTMLTag.swift similarity index 100% rename from Parser/Sources/Parser/HTMLParser/HTMLTag.swift rename to Modules/Parser/Sources/Parser/HTMLParser/HTMLTag.swift diff --git a/Parser/Sources/Parser/OPMLParser/OPMLAttributes.swift b/Modules/Parser/Sources/Parser/OPMLParser/OPMLAttributes.swift similarity index 100% rename from Parser/Sources/Parser/OPMLParser/OPMLAttributes.swift rename to Modules/Parser/Sources/Parser/OPMLParser/OPMLAttributes.swift diff --git a/Parser/Sources/Parser/OPMLParser/OPMLDocument.swift b/Modules/Parser/Sources/Parser/OPMLParser/OPMLDocument.swift similarity index 100% rename from Parser/Sources/Parser/OPMLParser/OPMLDocument.swift rename to Modules/Parser/Sources/Parser/OPMLParser/OPMLDocument.swift diff --git a/Parser/Sources/Parser/OPMLParser/OPMLFeedSpecifier.swift b/Modules/Parser/Sources/Parser/OPMLParser/OPMLFeedSpecifier.swift similarity index 100% rename from Parser/Sources/Parser/OPMLParser/OPMLFeedSpecifier.swift rename to Modules/Parser/Sources/Parser/OPMLParser/OPMLFeedSpecifier.swift diff --git a/Parser/Sources/Parser/OPMLParser/OPMLItem.swift b/Modules/Parser/Sources/Parser/OPMLParser/OPMLItem.swift similarity index 100% rename from Parser/Sources/Parser/OPMLParser/OPMLItem.swift rename to Modules/Parser/Sources/Parser/OPMLParser/OPMLItem.swift diff --git a/Parser/Sources/Parser/OPMLParser/OPMLParser.swift b/Modules/Parser/Sources/Parser/OPMLParser/OPMLParser.swift similarity index 100% rename from Parser/Sources/Parser/OPMLParser/OPMLParser.swift rename to Modules/Parser/Sources/Parser/OPMLParser/OPMLParser.swift diff --git a/Parser/Sources/Parser/SAX/Extensions/Data+SAX.swift b/Modules/Parser/Sources/Parser/SAX/Extensions/Data+SAX.swift similarity index 100% rename from Parser/Sources/Parser/SAX/Extensions/Data+SAX.swift rename to Modules/Parser/Sources/Parser/SAX/Extensions/Data+SAX.swift diff --git a/Parser/Sources/Parser/SAX/Extensions/Dictionary+SAX.swift b/Modules/Parser/Sources/Parser/SAX/Extensions/Dictionary+SAX.swift similarity index 100% rename from Parser/Sources/Parser/SAX/Extensions/Dictionary+SAX.swift rename to Modules/Parser/Sources/Parser/SAX/Extensions/Dictionary+SAX.swift diff --git a/Parser/Sources/Parser/SAX/Extensions/String+SAX.swift b/Modules/Parser/Sources/Parser/SAX/Extensions/String+SAX.swift similarity index 100% rename from Parser/Sources/Parser/SAX/Extensions/String+SAX.swift rename to Modules/Parser/Sources/Parser/SAX/Extensions/String+SAX.swift diff --git a/Parser/Sources/Parser/SAX/ParserData.swift b/Modules/Parser/Sources/Parser/SAX/ParserData.swift similarity index 100% rename from Parser/Sources/Parser/SAX/ParserData.swift rename to Modules/Parser/Sources/Parser/SAX/ParserData.swift diff --git a/Parser/Sources/Parser/SAX/SAXHTMLParser.swift b/Modules/Parser/Sources/Parser/SAX/SAXHTMLParser.swift similarity index 100% rename from Parser/Sources/Parser/SAX/SAXHTMLParser.swift rename to Modules/Parser/Sources/Parser/SAX/SAXHTMLParser.swift diff --git a/Parser/Sources/Parser/SAX/SAXParser.swift b/Modules/Parser/Sources/Parser/SAX/SAXParser.swift similarity index 100% rename from Parser/Sources/Parser/SAX/SAXParser.swift rename to Modules/Parser/Sources/Parser/SAX/SAXParser.swift diff --git a/Parser/Sources/Parser/SAX/SAXUtilities.swift b/Modules/Parser/Sources/Parser/SAX/SAXUtilities.swift similarity index 100% rename from Parser/Sources/Parser/SAX/SAXUtilities.swift rename to Modules/Parser/Sources/Parser/SAX/SAXUtilities.swift diff --git a/Parser/Tests/ParserTests/AtomParserTests.swift b/Modules/Parser/Tests/ParserTests/AtomParserTests.swift similarity index 100% rename from Parser/Tests/ParserTests/AtomParserTests.swift rename to Modules/Parser/Tests/ParserTests/AtomParserTests.swift diff --git a/Parser/Tests/ParserTests/DateParserTests.swift b/Modules/Parser/Tests/ParserTests/DateParserTests.swift similarity index 100% rename from Parser/Tests/ParserTests/DateParserTests.swift rename to Modules/Parser/Tests/ParserTests/DateParserTests.swift diff --git a/Parser/Tests/ParserTests/EntityDecodingTests.swift b/Modules/Parser/Tests/ParserTests/EntityDecodingTests.swift similarity index 100% rename from Parser/Tests/ParserTests/EntityDecodingTests.swift rename to Modules/Parser/Tests/ParserTests/EntityDecodingTests.swift diff --git a/Parser/Tests/ParserTests/FeedParserTypeTests.swift b/Modules/Parser/Tests/ParserTests/FeedParserTypeTests.swift similarity index 100% rename from Parser/Tests/ParserTests/FeedParserTypeTests.swift rename to Modules/Parser/Tests/ParserTests/FeedParserTypeTests.swift diff --git a/Parser/Tests/ParserTests/HTMLLinkTests.swift b/Modules/Parser/Tests/ParserTests/HTMLLinkTests.swift similarity index 100% rename from Parser/Tests/ParserTests/HTMLLinkTests.swift rename to Modules/Parser/Tests/ParserTests/HTMLLinkTests.swift diff --git a/Parser/Tests/ParserTests/HTMLMetadataTests.swift b/Modules/Parser/Tests/ParserTests/HTMLMetadataTests.swift similarity index 100% rename from Parser/Tests/ParserTests/HTMLMetadataTests.swift rename to Modules/Parser/Tests/ParserTests/HTMLMetadataTests.swift diff --git a/Parser/Tests/ParserTests/JSONFeedParserTests.swift b/Modules/Parser/Tests/ParserTests/JSONFeedParserTests.swift similarity index 100% rename from Parser/Tests/ParserTests/JSONFeedParserTests.swift rename to Modules/Parser/Tests/ParserTests/JSONFeedParserTests.swift diff --git a/Parser/Tests/ParserTests/OPMLTests.swift b/Modules/Parser/Tests/ParserTests/OPMLTests.swift similarity index 100% rename from Parser/Tests/ParserTests/OPMLTests.swift rename to Modules/Parser/Tests/ParserTests/OPMLTests.swift diff --git a/Parser/Tests/ParserTests/RSSInJSONParserTests.swift b/Modules/Parser/Tests/ParserTests/RSSInJSONParserTests.swift similarity index 100% rename from Parser/Tests/ParserTests/RSSInJSONParserTests.swift rename to Modules/Parser/Tests/ParserTests/RSSInJSONParserTests.swift diff --git a/Parser/Tests/ParserTests/RSSParserTests.swift b/Modules/Parser/Tests/ParserTests/RSSParserTests.swift similarity index 100% rename from Parser/Tests/ParserTests/RSSParserTests.swift rename to Modules/Parser/Tests/ParserTests/RSSParserTests.swift diff --git a/Parser/Tests/ParserTests/Resources/3960.json b/Modules/Parser/Tests/ParserTests/Resources/3960.json similarity index 100% rename from Parser/Tests/ParserTests/Resources/3960.json rename to Modules/Parser/Tests/ParserTests/Resources/3960.json diff --git a/Parser/Tests/ParserTests/Resources/489.rss b/Modules/Parser/Tests/ParserTests/Resources/489.rss similarity index 100% rename from Parser/Tests/ParserTests/Resources/489.rss rename to Modules/Parser/Tests/ParserTests/Resources/489.rss diff --git a/Parser/Tests/ParserTests/Resources/4fsodonline.atom b/Modules/Parser/Tests/ParserTests/Resources/4fsodonline.atom similarity index 100% rename from Parser/Tests/ParserTests/Resources/4fsodonline.atom rename to Modules/Parser/Tests/ParserTests/Resources/4fsodonline.atom diff --git a/Parser/Tests/ParserTests/Resources/DaringFireball.atom b/Modules/Parser/Tests/ParserTests/Resources/DaringFireball.atom similarity index 100% rename from Parser/Tests/ParserTests/Resources/DaringFireball.atom rename to Modules/Parser/Tests/ParserTests/Resources/DaringFireball.atom diff --git a/Parser/Tests/ParserTests/Resources/DaringFireball.html b/Modules/Parser/Tests/ParserTests/Resources/DaringFireball.html similarity index 100% rename from Parser/Tests/ParserTests/Resources/DaringFireball.html rename to Modules/Parser/Tests/ParserTests/Resources/DaringFireball.html diff --git a/Parser/Tests/ParserTests/Resources/DaringFireball.json b/Modules/Parser/Tests/ParserTests/Resources/DaringFireball.json similarity index 100% rename from Parser/Tests/ParserTests/Resources/DaringFireball.json rename to Modules/Parser/Tests/ParserTests/Resources/DaringFireball.json diff --git a/Parser/Tests/ParserTests/Resources/DaringFireball.rss b/Modules/Parser/Tests/ParserTests/Resources/DaringFireball.rss similarity index 100% rename from Parser/Tests/ParserTests/Resources/DaringFireball.rss rename to Modules/Parser/Tests/ParserTests/Resources/DaringFireball.rss diff --git a/Parser/Tests/ParserTests/Resources/EMarley.rss b/Modules/Parser/Tests/ParserTests/Resources/EMarley.rss similarity index 100% rename from Parser/Tests/ParserTests/Resources/EMarley.rss rename to Modules/Parser/Tests/ParserTests/Resources/EMarley.rss diff --git a/Parser/Tests/ParserTests/Resources/KatieFloyd.rss b/Modules/Parser/Tests/ParserTests/Resources/KatieFloyd.rss similarity index 100% rename from Parser/Tests/ParserTests/Resources/KatieFloyd.rss rename to Modules/Parser/Tests/ParserTests/Resources/KatieFloyd.rss diff --git a/Parser/Tests/ParserTests/Resources/OneFootTsunami.atom b/Modules/Parser/Tests/ParserTests/Resources/OneFootTsunami.atom similarity index 100% rename from Parser/Tests/ParserTests/Resources/OneFootTsunami.atom rename to Modules/Parser/Tests/ParserTests/Resources/OneFootTsunami.atom diff --git a/Parser/Tests/ParserTests/Resources/ScriptingNews.json b/Modules/Parser/Tests/ParserTests/Resources/ScriptingNews.json similarity index 100% rename from Parser/Tests/ParserTests/Resources/ScriptingNews.json rename to Modules/Parser/Tests/ParserTests/Resources/ScriptingNews.json diff --git a/Parser/Tests/ParserTests/Resources/Subs.opml b/Modules/Parser/Tests/ParserTests/Resources/Subs.opml similarity index 100% rename from Parser/Tests/ParserTests/Resources/Subs.opml rename to Modules/Parser/Tests/ParserTests/Resources/Subs.opml diff --git a/Parser/Tests/ParserTests/Resources/SubsNoTitleAttributes.opml b/Modules/Parser/Tests/ParserTests/Resources/SubsNoTitleAttributes.opml similarity index 100% rename from Parser/Tests/ParserTests/Resources/SubsNoTitleAttributes.opml rename to Modules/Parser/Tests/ParserTests/Resources/SubsNoTitleAttributes.opml diff --git a/Parser/Tests/ParserTests/Resources/YouTubeTheVolvoRocks.html b/Modules/Parser/Tests/ParserTests/Resources/YouTubeTheVolvoRocks.html similarity index 100% rename from Parser/Tests/ParserTests/Resources/YouTubeTheVolvoRocks.html rename to Modules/Parser/Tests/ParserTests/Resources/YouTubeTheVolvoRocks.html diff --git a/Parser/Tests/ParserTests/Resources/aktuality.rss b/Modules/Parser/Tests/ParserTests/Resources/aktuality.rss similarity index 100% rename from Parser/Tests/ParserTests/Resources/aktuality.rss rename to Modules/Parser/Tests/ParserTests/Resources/aktuality.rss diff --git a/Parser/Tests/ParserTests/Resources/allthis-partial.json b/Modules/Parser/Tests/ParserTests/Resources/allthis-partial.json similarity index 100% rename from Parser/Tests/ParserTests/Resources/allthis-partial.json rename to Modules/Parser/Tests/ParserTests/Resources/allthis-partial.json diff --git a/Parser/Tests/ParserTests/Resources/allthis.atom b/Modules/Parser/Tests/ParserTests/Resources/allthis.atom similarity index 100% rename from Parser/Tests/ParserTests/Resources/allthis.atom rename to Modules/Parser/Tests/ParserTests/Resources/allthis.atom diff --git a/Parser/Tests/ParserTests/Resources/allthis.json b/Modules/Parser/Tests/ParserTests/Resources/allthis.json similarity index 100% rename from Parser/Tests/ParserTests/Resources/allthis.json rename to Modules/Parser/Tests/ParserTests/Resources/allthis.json diff --git a/Parser/Tests/ParserTests/Resources/atp.rss b/Modules/Parser/Tests/ParserTests/Resources/atp.rss similarity index 100% rename from Parser/Tests/ParserTests/Resources/atp.rss rename to Modules/Parser/Tests/ParserTests/Resources/atp.rss diff --git a/Parser/Tests/ParserTests/Resources/authors.json b/Modules/Parser/Tests/ParserTests/Resources/authors.json similarity index 100% rename from Parser/Tests/ParserTests/Resources/authors.json rename to Modules/Parser/Tests/ParserTests/Resources/authors.json diff --git a/Parser/Tests/ParserTests/Resources/bio.rdf b/Modules/Parser/Tests/ParserTests/Resources/bio.rdf similarity index 100% rename from Parser/Tests/ParserTests/Resources/bio.rdf rename to Modules/Parser/Tests/ParserTests/Resources/bio.rdf diff --git a/Parser/Tests/ParserTests/Resources/cloudblog.rss b/Modules/Parser/Tests/ParserTests/Resources/cloudblog.rss similarity index 100% rename from Parser/Tests/ParserTests/Resources/cloudblog.rss rename to Modules/Parser/Tests/ParserTests/Resources/cloudblog.rss diff --git a/Parser/Tests/ParserTests/Resources/coco.html b/Modules/Parser/Tests/ParserTests/Resources/coco.html similarity index 100% rename from Parser/Tests/ParserTests/Resources/coco.html rename to Modules/Parser/Tests/ParserTests/Resources/coco.html diff --git a/Parser/Tests/ParserTests/Resources/curt.json b/Modules/Parser/Tests/ParserTests/Resources/curt.json similarity index 100% rename from Parser/Tests/ParserTests/Resources/curt.json rename to Modules/Parser/Tests/ParserTests/Resources/curt.json diff --git a/Parser/Tests/ParserTests/Resources/dcrainmaker.xml b/Modules/Parser/Tests/ParserTests/Resources/dcrainmaker.xml similarity index 100% rename from Parser/Tests/ParserTests/Resources/dcrainmaker.xml rename to Modules/Parser/Tests/ParserTests/Resources/dcrainmaker.xml diff --git a/Parser/Tests/ParserTests/Resources/donthitsave.xml b/Modules/Parser/Tests/ParserTests/Resources/donthitsave.xml similarity index 100% rename from Parser/Tests/ParserTests/Resources/donthitsave.xml rename to Modules/Parser/Tests/ParserTests/Resources/donthitsave.xml diff --git a/Parser/Tests/ParserTests/Resources/expertopinionent.atom b/Modules/Parser/Tests/ParserTests/Resources/expertopinionent.atom similarity index 100% rename from Parser/Tests/ParserTests/Resources/expertopinionent.atom rename to Modules/Parser/Tests/ParserTests/Resources/expertopinionent.atom diff --git a/Parser/Tests/ParserTests/Resources/furbo.html b/Modules/Parser/Tests/ParserTests/Resources/furbo.html similarity index 100% rename from Parser/Tests/ParserTests/Resources/furbo.html rename to Modules/Parser/Tests/ParserTests/Resources/furbo.html diff --git a/Parser/Tests/ParserTests/Resources/inessential.html b/Modules/Parser/Tests/ParserTests/Resources/inessential.html similarity index 100% rename from Parser/Tests/ParserTests/Resources/inessential.html rename to Modules/Parser/Tests/ParserTests/Resources/inessential.html diff --git a/Parser/Tests/ParserTests/Resources/inessential.json b/Modules/Parser/Tests/ParserTests/Resources/inessential.json similarity index 100% rename from Parser/Tests/ParserTests/Resources/inessential.json rename to Modules/Parser/Tests/ParserTests/Resources/inessential.json diff --git a/Parser/Tests/ParserTests/Resources/kc0011.rss b/Modules/Parser/Tests/ParserTests/Resources/kc0011.rss similarity index 100% rename from Parser/Tests/ParserTests/Resources/kc0011.rss rename to Modules/Parser/Tests/ParserTests/Resources/kc0011.rss diff --git a/Parser/Tests/ParserTests/Resources/livemint.xml b/Modules/Parser/Tests/ParserTests/Resources/livemint.xml similarity index 100% rename from Parser/Tests/ParserTests/Resources/livemint.xml rename to Modules/Parser/Tests/ParserTests/Resources/livemint.xml diff --git a/Parser/Tests/ParserTests/Resources/macworld.rss b/Modules/Parser/Tests/ParserTests/Resources/macworld.rss similarity index 100% rename from Parser/Tests/ParserTests/Resources/macworld.rss rename to Modules/Parser/Tests/ParserTests/Resources/macworld.rss diff --git a/Parser/Tests/ParserTests/Resources/manton.rss b/Modules/Parser/Tests/ParserTests/Resources/manton.rss similarity index 100% rename from Parser/Tests/ParserTests/Resources/manton.rss rename to Modules/Parser/Tests/ParserTests/Resources/manton.rss diff --git a/Parser/Tests/ParserTests/Resources/monkeydom.rss b/Modules/Parser/Tests/ParserTests/Resources/monkeydom.rss similarity index 100% rename from Parser/Tests/ParserTests/Resources/monkeydom.rss rename to Modules/Parser/Tests/ParserTests/Resources/monkeydom.rss diff --git a/Parser/Tests/ParserTests/Resources/natasha.xml b/Modules/Parser/Tests/ParserTests/Resources/natasha.xml similarity index 100% rename from Parser/Tests/ParserTests/Resources/natasha.xml rename to Modules/Parser/Tests/ParserTests/Resources/natasha.xml diff --git a/Parser/Tests/ParserTests/Resources/phpxml.rss b/Modules/Parser/Tests/ParserTests/Resources/phpxml.rss similarity index 100% rename from Parser/Tests/ParserTests/Resources/phpxml.rss rename to Modules/Parser/Tests/ParserTests/Resources/phpxml.rss diff --git a/Parser/Tests/ParserTests/Resources/pxlnv.json b/Modules/Parser/Tests/ParserTests/Resources/pxlnv.json similarity index 100% rename from Parser/Tests/ParserTests/Resources/pxlnv.json rename to Modules/Parser/Tests/ParserTests/Resources/pxlnv.json diff --git a/Parser/Tests/ParserTests/Resources/rose.json b/Modules/Parser/Tests/ParserTests/Resources/rose.json similarity index 100% rename from Parser/Tests/ParserTests/Resources/rose.json rename to Modules/Parser/Tests/ParserTests/Resources/rose.json diff --git a/Parser/Tests/ParserTests/Resources/russcox.atom b/Modules/Parser/Tests/ParserTests/Resources/russcox.atom similarity index 100% rename from Parser/Tests/ParserTests/Resources/russcox.atom rename to Modules/Parser/Tests/ParserTests/Resources/russcox.atom diff --git a/Parser/Tests/ParserTests/Resources/scriptingNews.rss b/Modules/Parser/Tests/ParserTests/Resources/scriptingNews.rss similarity index 100% rename from Parser/Tests/ParserTests/Resources/scriptingNews.rss rename to Modules/Parser/Tests/ParserTests/Resources/scriptingNews.rss diff --git a/Parser/Tests/ParserTests/Resources/sixcolors.html b/Modules/Parser/Tests/ParserTests/Resources/sixcolors.html similarity index 100% rename from Parser/Tests/ParserTests/Resources/sixcolors.html rename to Modules/Parser/Tests/ParserTests/Resources/sixcolors.html diff --git a/Parser/Tests/ParserTests/Resources/theomnishow.rss b/Modules/Parser/Tests/ParserTests/Resources/theomnishow.rss similarity index 100% rename from Parser/Tests/ParserTests/Resources/theomnishow.rss rename to Modules/Parser/Tests/ParserTests/Resources/theomnishow.rss diff --git a/Parser/Tests/ParserTests/Resources/vincode.rss b/Modules/Parser/Tests/ParserTests/Resources/vincode.rss similarity index 100% rename from Parser/Tests/ParserTests/Resources/vincode.rss rename to Modules/Parser/Tests/ParserTests/Resources/vincode.rss diff --git a/RSCore/.swiftpm/xcode/xcshareddata/xcschemes/RSCore.xcscheme b/Modules/RSCore/.swiftpm/xcode/xcshareddata/xcschemes/RSCore.xcscheme similarity index 100% rename from RSCore/.swiftpm/xcode/xcshareddata/xcschemes/RSCore.xcscheme rename to Modules/RSCore/.swiftpm/xcode/xcshareddata/xcschemes/RSCore.xcscheme diff --git a/RSCore/.swiftpm/xcode/xcshareddata/xcschemes/RSCoreTests.xcscheme b/Modules/RSCore/.swiftpm/xcode/xcshareddata/xcschemes/RSCoreTests.xcscheme similarity index 100% rename from RSCore/.swiftpm/xcode/xcshareddata/xcschemes/RSCoreTests.xcscheme rename to Modules/RSCore/.swiftpm/xcode/xcshareddata/xcschemes/RSCoreTests.xcscheme diff --git a/RSCore/LICENSE b/Modules/RSCore/LICENSE similarity index 100% rename from RSCore/LICENSE rename to Modules/RSCore/LICENSE diff --git a/RSCore/Package.swift b/Modules/RSCore/Package.swift similarity index 100% rename from RSCore/Package.swift rename to Modules/RSCore/Package.swift diff --git a/RSCore/README.md b/Modules/RSCore/README.md similarity index 100% rename from RSCore/README.md rename to Modules/RSCore/README.md diff --git a/RSCore/Sources/RSCore/AppConfig.swift b/Modules/RSCore/Sources/RSCore/AppConfig.swift similarity index 100% rename from RSCore/Sources/RSCore/AppConfig.swift rename to Modules/RSCore/Sources/RSCore/AppConfig.swift diff --git a/RSCore/Sources/RSCore/AppKit/FourCharCode.swift b/Modules/RSCore/Sources/RSCore/AppKit/FourCharCode.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/FourCharCode.swift rename to Modules/RSCore/Sources/RSCore/AppKit/FourCharCode.swift diff --git a/RSCore/Sources/RSCore/AppKit/Keyboard.swift b/Modules/RSCore/Sources/RSCore/AppKit/Keyboard.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/Keyboard.swift rename to Modules/RSCore/Sources/RSCore/AppKit/Keyboard.swift diff --git a/RSCore/Sources/RSCore/AppKit/KeyboardDelegateProtocol.swift b/Modules/RSCore/Sources/RSCore/AppKit/KeyboardDelegateProtocol.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/KeyboardDelegateProtocol.swift rename to Modules/RSCore/Sources/RSCore/AppKit/KeyboardDelegateProtocol.swift diff --git a/RSCore/Sources/RSCore/AppKit/NSAppearance+RSCore.swift b/Modules/RSCore/Sources/RSCore/AppKit/NSAppearance+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/NSAppearance+RSCore.swift rename to Modules/RSCore/Sources/RSCore/AppKit/NSAppearance+RSCore.swift diff --git a/RSCore/Sources/RSCore/AppKit/NSAppleEventDescriptor+RSCore.swift b/Modules/RSCore/Sources/RSCore/AppKit/NSAppleEventDescriptor+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/NSAppleEventDescriptor+RSCore.swift rename to Modules/RSCore/Sources/RSCore/AppKit/NSAppleEventDescriptor+RSCore.swift diff --git a/RSCore/Sources/RSCore/AppKit/NSImage+RSCore.swift b/Modules/RSCore/Sources/RSCore/AppKit/NSImage+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/NSImage+RSCore.swift rename to Modules/RSCore/Sources/RSCore/AppKit/NSImage+RSCore.swift diff --git a/RSCore/Sources/RSCore/AppKit/NSMenu+Extensions.swift b/Modules/RSCore/Sources/RSCore/AppKit/NSMenu+Extensions.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/NSMenu+Extensions.swift rename to Modules/RSCore/Sources/RSCore/AppKit/NSMenu+Extensions.swift diff --git a/RSCore/Sources/RSCore/AppKit/NSOutlineView+RSCore.swift b/Modules/RSCore/Sources/RSCore/AppKit/NSOutlineView+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/NSOutlineView+RSCore.swift rename to Modules/RSCore/Sources/RSCore/AppKit/NSOutlineView+RSCore.swift diff --git a/RSCore/Sources/RSCore/AppKit/NSPasteboard+RSCore.swift b/Modules/RSCore/Sources/RSCore/AppKit/NSPasteboard+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/NSPasteboard+RSCore.swift rename to Modules/RSCore/Sources/RSCore/AppKit/NSPasteboard+RSCore.swift diff --git a/RSCore/Sources/RSCore/AppKit/NSResponder-Extensions.swift b/Modules/RSCore/Sources/RSCore/AppKit/NSResponder-Extensions.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/NSResponder-Extensions.swift rename to Modules/RSCore/Sources/RSCore/AppKit/NSResponder-Extensions.swift diff --git a/RSCore/Sources/RSCore/AppKit/NSTableView+RSCore.swift b/Modules/RSCore/Sources/RSCore/AppKit/NSTableView+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/NSTableView+RSCore.swift rename to Modules/RSCore/Sources/RSCore/AppKit/NSTableView+RSCore.swift diff --git a/RSCore/Sources/RSCore/AppKit/NSToolbar+RSCore.swift b/Modules/RSCore/Sources/RSCore/AppKit/NSToolbar+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/NSToolbar+RSCore.swift rename to Modules/RSCore/Sources/RSCore/AppKit/NSToolbar+RSCore.swift diff --git a/RSCore/Sources/RSCore/AppKit/NSView+RSCore.swift b/Modules/RSCore/Sources/RSCore/AppKit/NSView+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/NSView+RSCore.swift rename to Modules/RSCore/Sources/RSCore/AppKit/NSView+RSCore.swift diff --git a/RSCore/Sources/RSCore/AppKit/NSWindow-Extensions.swift b/Modules/RSCore/Sources/RSCore/AppKit/NSWindow-Extensions.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/NSWindow-Extensions.swift rename to Modules/RSCore/Sources/RSCore/AppKit/NSWindow-Extensions.swift diff --git a/RSCore/Sources/RSCore/AppKit/NSWindowController+RSCore.swift b/Modules/RSCore/Sources/RSCore/AppKit/NSWindowController+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/NSWindowController+RSCore.swift rename to Modules/RSCore/Sources/RSCore/AppKit/NSWindowController+RSCore.swift diff --git a/RSCore/Sources/RSCore/AppKit/NSWorkspace+RSCore.swift b/Modules/RSCore/Sources/RSCore/AppKit/NSWorkspace+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/NSWorkspace+RSCore.swift rename to Modules/RSCore/Sources/RSCore/AppKit/NSWorkspace+RSCore.swift diff --git a/RSCore/Sources/RSCore/AppKit/PasteboardWriterOwner.swift b/Modules/RSCore/Sources/RSCore/AppKit/PasteboardWriterOwner.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/PasteboardWriterOwner.swift rename to Modules/RSCore/Sources/RSCore/AppKit/PasteboardWriterOwner.swift diff --git a/RSCore/Sources/RSCore/AppKit/RSAppMovementMonitor.swift b/Modules/RSCore/Sources/RSCore/AppKit/RSAppMovementMonitor.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/RSAppMovementMonitor.swift rename to Modules/RSCore/Sources/RSCore/AppKit/RSAppMovementMonitor.swift diff --git a/RSCore/Sources/RSCore/AppKit/RSDarkModeAdaptingToolbarButton.swift b/Modules/RSCore/Sources/RSCore/AppKit/RSDarkModeAdaptingToolbarButton.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/RSDarkModeAdaptingToolbarButton.swift rename to Modules/RSCore/Sources/RSCore/AppKit/RSDarkModeAdaptingToolbarButton.swift diff --git a/RSCore/Sources/RSCore/AppKit/RSToolbarItem.swift b/Modules/RSCore/Sources/RSCore/AppKit/RSToolbarItem.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/RSToolbarItem.swift rename to Modules/RSCore/Sources/RSCore/AppKit/RSToolbarItem.swift diff --git a/RSCore/Sources/RSCore/AppKit/URLPasteboardWriter.swift b/Modules/RSCore/Sources/RSCore/AppKit/URLPasteboardWriter.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/URLPasteboardWriter.swift rename to Modules/RSCore/Sources/RSCore/AppKit/URLPasteboardWriter.swift diff --git a/RSCore/Sources/RSCore/AppKit/UserApp.swift b/Modules/RSCore/Sources/RSCore/AppKit/UserApp.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/UserApp.swift rename to Modules/RSCore/Sources/RSCore/AppKit/UserApp.swift diff --git a/RSCore/Sources/RSCore/Array+RSCore.swift b/Modules/RSCore/Sources/RSCore/Array+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/Array+RSCore.swift rename to Modules/RSCore/Sources/RSCore/Array+RSCore.swift diff --git a/RSCore/Sources/RSCore/BatchUpdate.swift b/Modules/RSCore/Sources/RSCore/BatchUpdate.swift similarity index 100% rename from RSCore/Sources/RSCore/BatchUpdate.swift rename to Modules/RSCore/Sources/RSCore/BatchUpdate.swift diff --git a/RSCore/Sources/RSCore/BinaryDiskCache.swift b/Modules/RSCore/Sources/RSCore/BinaryDiskCache.swift similarity index 100% rename from RSCore/Sources/RSCore/BinaryDiskCache.swift rename to Modules/RSCore/Sources/RSCore/BinaryDiskCache.swift diff --git a/RSCore/Sources/RSCore/Blocks.swift b/Modules/RSCore/Sources/RSCore/Blocks.swift similarity index 100% rename from RSCore/Sources/RSCore/Blocks.swift rename to Modules/RSCore/Sources/RSCore/Blocks.swift diff --git a/RSCore/Sources/RSCore/Cache.swift b/Modules/RSCore/Sources/RSCore/Cache.swift similarity index 100% rename from RSCore/Sources/RSCore/Cache.swift rename to Modules/RSCore/Sources/RSCore/Cache.swift diff --git a/RSCore/Sources/RSCore/Calendar+RSCore.swift b/Modules/RSCore/Sources/RSCore/Calendar+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/Calendar+RSCore.swift rename to Modules/RSCore/Sources/RSCore/Calendar+RSCore.swift diff --git a/RSCore/Sources/RSCore/Character+RSCore.swift b/Modules/RSCore/Sources/RSCore/Character+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/Character+RSCore.swift rename to Modules/RSCore/Sources/RSCore/Character+RSCore.swift diff --git a/RSCore/Sources/RSCore/CloudKit/CloudKitError.swift b/Modules/RSCore/Sources/RSCore/CloudKit/CloudKitError.swift similarity index 100% rename from RSCore/Sources/RSCore/CloudKit/CloudKitError.swift rename to Modules/RSCore/Sources/RSCore/CloudKit/CloudKitError.swift diff --git a/RSCore/Sources/RSCore/CloudKit/CloudKitZone.swift b/Modules/RSCore/Sources/RSCore/CloudKit/CloudKitZone.swift similarity index 100% rename from RSCore/Sources/RSCore/CloudKit/CloudKitZone.swift rename to Modules/RSCore/Sources/RSCore/CloudKit/CloudKitZone.swift diff --git a/RSCore/Sources/RSCore/CloudKit/CloudKitZoneResult.swift b/Modules/RSCore/Sources/RSCore/CloudKit/CloudKitZoneResult.swift similarity index 100% rename from RSCore/Sources/RSCore/CloudKit/CloudKitZoneResult.swift rename to Modules/RSCore/Sources/RSCore/CloudKit/CloudKitZoneResult.swift diff --git a/RSCore/Sources/RSCore/CoalescingQueue.swift b/Modules/RSCore/Sources/RSCore/CoalescingQueue.swift similarity index 100% rename from RSCore/Sources/RSCore/CoalescingQueue.swift rename to Modules/RSCore/Sources/RSCore/CoalescingQueue.swift diff --git a/RSCore/Sources/RSCore/Data+RSCore.swift b/Modules/RSCore/Sources/RSCore/Data+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/Data+RSCore.swift rename to Modules/RSCore/Sources/RSCore/Data+RSCore.swift diff --git a/RSCore/Sources/RSCore/Date+Extensions.swift b/Modules/RSCore/Sources/RSCore/Date+Extensions.swift similarity index 100% rename from RSCore/Sources/RSCore/Date+Extensions.swift rename to Modules/RSCore/Sources/RSCore/Date+Extensions.swift diff --git a/RSCore/Sources/RSCore/Dictionary+RSCore.swift b/Modules/RSCore/Sources/RSCore/Dictionary+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/Dictionary+RSCore.swift rename to Modules/RSCore/Sources/RSCore/Dictionary+RSCore.swift diff --git a/RSCore/Sources/RSCore/DisplayNameProvider.swift b/Modules/RSCore/Sources/RSCore/DisplayNameProvider.swift similarity index 100% rename from RSCore/Sources/RSCore/DisplayNameProvider.swift rename to Modules/RSCore/Sources/RSCore/DisplayNameProvider.swift diff --git a/RSCore/Sources/RSCore/FileManager+RSCore.swift b/Modules/RSCore/Sources/RSCore/FileManager+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/FileManager+RSCore.swift rename to Modules/RSCore/Sources/RSCore/FileManager+RSCore.swift diff --git a/RSCore/Sources/RSCore/Geometry.swift b/Modules/RSCore/Sources/RSCore/Geometry.swift similarity index 100% rename from RSCore/Sources/RSCore/Geometry.swift rename to Modules/RSCore/Sources/RSCore/Geometry.swift diff --git a/RSCore/Sources/RSCore/MacroProcessor.swift b/Modules/RSCore/Sources/RSCore/MacroProcessor.swift similarity index 100% rename from RSCore/Sources/RSCore/MacroProcessor.swift rename to Modules/RSCore/Sources/RSCore/MacroProcessor.swift diff --git a/RSCore/Sources/RSCore/MainThreadBlockOperation.swift b/Modules/RSCore/Sources/RSCore/MainThreadBlockOperation.swift similarity index 100% rename from RSCore/Sources/RSCore/MainThreadBlockOperation.swift rename to Modules/RSCore/Sources/RSCore/MainThreadBlockOperation.swift diff --git a/RSCore/Sources/RSCore/MainThreadOperation.swift b/Modules/RSCore/Sources/RSCore/MainThreadOperation.swift similarity index 100% rename from RSCore/Sources/RSCore/MainThreadOperation.swift rename to Modules/RSCore/Sources/RSCore/MainThreadOperation.swift diff --git a/RSCore/Sources/RSCore/MainThreadOperationQueue.swift b/Modules/RSCore/Sources/RSCore/MainThreadOperationQueue.swift similarity index 100% rename from RSCore/Sources/RSCore/MainThreadOperationQueue.swift rename to Modules/RSCore/Sources/RSCore/MainThreadOperationQueue.swift diff --git a/RSCore/Sources/RSCore/ManagedResourceFile.swift b/Modules/RSCore/Sources/RSCore/ManagedResourceFile.swift similarity index 100% rename from RSCore/Sources/RSCore/ManagedResourceFile.swift rename to Modules/RSCore/Sources/RSCore/ManagedResourceFile.swift diff --git a/RSCore/Sources/RSCore/OPMLRepresentable.swift b/Modules/RSCore/Sources/RSCore/OPMLRepresentable.swift similarity index 100% rename from RSCore/Sources/RSCore/OPMLRepresentable.swift rename to Modules/RSCore/Sources/RSCore/OPMLRepresentable.swift diff --git a/RSCore/Sources/RSCore/Platform.swift b/Modules/RSCore/Sources/RSCore/Platform.swift similarity index 100% rename from RSCore/Sources/RSCore/Platform.swift rename to Modules/RSCore/Sources/RSCore/Platform.swift diff --git a/RSCore/Sources/RSCore/PropertyList.swift b/Modules/RSCore/Sources/RSCore/PropertyList.swift similarity index 100% rename from RSCore/Sources/RSCore/PropertyList.swift rename to Modules/RSCore/Sources/RSCore/PropertyList.swift diff --git a/RSCore/Sources/RSCore/RSImage.swift b/Modules/RSCore/Sources/RSCore/RSImage.swift similarity index 100% rename from RSCore/Sources/RSCore/RSImage.swift rename to Modules/RSCore/Sources/RSCore/RSImage.swift diff --git a/RSCore/Sources/RSCore/RSScreen.swift b/Modules/RSCore/Sources/RSCore/RSScreen.swift similarity index 100% rename from RSCore/Sources/RSCore/RSScreen.swift rename to Modules/RSCore/Sources/RSCore/RSScreen.swift diff --git a/RSCore/Sources/RSCore/Renamable.swift b/Modules/RSCore/Sources/RSCore/Renamable.swift similarity index 100% rename from RSCore/Sources/RSCore/Renamable.swift rename to Modules/RSCore/Sources/RSCore/Renamable.swift diff --git a/RSCore/Sources/RSCore/SendToBlogEditorApp.swift b/Modules/RSCore/Sources/RSCore/SendToBlogEditorApp.swift similarity index 100% rename from RSCore/Sources/RSCore/SendToBlogEditorApp.swift rename to Modules/RSCore/Sources/RSCore/SendToBlogEditorApp.swift diff --git a/RSCore/Sources/RSCore/SendToCommand.swift b/Modules/RSCore/Sources/RSCore/SendToCommand.swift similarity index 100% rename from RSCore/Sources/RSCore/SendToCommand.swift rename to Modules/RSCore/Sources/RSCore/SendToCommand.swift diff --git a/RSCore/Sources/RSCore/Set+Extensions.swift b/Modules/RSCore/Sources/RSCore/Set+Extensions.swift similarity index 100% rename from RSCore/Sources/RSCore/Set+Extensions.swift rename to Modules/RSCore/Sources/RSCore/Set+Extensions.swift diff --git a/RSCore/Sources/RSCore/String+RSCore.swift b/Modules/RSCore/Sources/RSCore/String+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/String+RSCore.swift rename to Modules/RSCore/Sources/RSCore/String+RSCore.swift diff --git a/RSCore/Sources/RSCore/UIKit/UIResponder+RSCore.swift b/Modules/RSCore/Sources/RSCore/UIKit/UIResponder+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/UIKit/UIResponder+RSCore.swift rename to Modules/RSCore/Sources/RSCore/UIKit/UIResponder+RSCore.swift diff --git a/RSCore/Sources/RSCore/UIKit/UIView+RSCore.swift b/Modules/RSCore/Sources/RSCore/UIKit/UIView+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/UIKit/UIView+RSCore.swift rename to Modules/RSCore/Sources/RSCore/UIKit/UIView+RSCore.swift diff --git a/RSCore/Sources/RSCore/UIKit/UIViewController+RSCore.swift b/Modules/RSCore/Sources/RSCore/UIKit/UIViewController+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/UIKit/UIViewController+RSCore.swift rename to Modules/RSCore/Sources/RSCore/UIKit/UIViewController+RSCore.swift diff --git a/RSCore/Sources/RSCore/UIKit/UIWindow+RSCore.swift b/Modules/RSCore/Sources/RSCore/UIKit/UIWindow+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/UIKit/UIWindow+RSCore.swift rename to Modules/RSCore/Sources/RSCore/UIKit/UIWindow+RSCore.swift diff --git a/RSCore/Sources/RSCore/UndoableCommand.swift b/Modules/RSCore/Sources/RSCore/UndoableCommand.swift similarity index 100% rename from RSCore/Sources/RSCore/UndoableCommand.swift rename to Modules/RSCore/Sources/RSCore/UndoableCommand.swift diff --git a/RSCore/Sources/RSCoreResources/AppKit/IndeterminateProgressWindowController.swift b/Modules/RSCore/Sources/RSCoreResources/AppKit/IndeterminateProgressWindowController.swift similarity index 100% rename from RSCore/Sources/RSCoreResources/AppKit/IndeterminateProgressWindowController.swift rename to Modules/RSCore/Sources/RSCoreResources/AppKit/IndeterminateProgressWindowController.swift diff --git a/RSCore/Sources/RSCoreResources/AppKit/WebViewWindowController.swift b/Modules/RSCore/Sources/RSCoreResources/AppKit/WebViewWindowController.swift similarity index 100% rename from RSCore/Sources/RSCoreResources/AppKit/WebViewWindowController.swift rename to Modules/RSCore/Sources/RSCoreResources/AppKit/WebViewWindowController.swift diff --git a/RSCore/Sources/RSCoreResources/RSCoreResources.swift b/Modules/RSCore/Sources/RSCoreResources/RSCoreResources.swift similarity index 100% rename from RSCore/Sources/RSCoreResources/RSCoreResources.swift rename to Modules/RSCore/Sources/RSCoreResources/RSCoreResources.swift diff --git a/RSCore/Sources/RSCoreResources/Resources/IndeterminateProgressWindow.xib b/Modules/RSCore/Sources/RSCoreResources/Resources/IndeterminateProgressWindow.xib similarity index 100% rename from RSCore/Sources/RSCoreResources/Resources/IndeterminateProgressWindow.xib rename to Modules/RSCore/Sources/RSCoreResources/Resources/IndeterminateProgressWindow.xib diff --git a/RSCore/Sources/RSCoreResources/Resources/WebViewWindow.xib b/Modules/RSCore/Sources/RSCoreResources/Resources/WebViewWindow.xib similarity index 100% rename from RSCore/Sources/RSCoreResources/Resources/WebViewWindow.xib rename to Modules/RSCore/Sources/RSCoreResources/Resources/WebViewWindow.xib diff --git a/RSCore/Tests/RSCoreTests/Data+RSCoreTests.swift b/Modules/RSCore/Tests/RSCoreTests/Data+RSCoreTests.swift similarity index 100% rename from RSCore/Tests/RSCoreTests/Data+RSCoreTests.swift rename to Modules/RSCore/Tests/RSCoreTests/Data+RSCoreTests.swift diff --git a/RSCore/Tests/RSCoreTests/MacroProcessorTests.swift b/Modules/RSCore/Tests/RSCoreTests/MacroProcessorTests.swift similarity index 100% rename from RSCore/Tests/RSCoreTests/MacroProcessorTests.swift rename to Modules/RSCore/Tests/RSCoreTests/MacroProcessorTests.swift diff --git a/RSCore/Tests/RSCoreTests/MainThreadOperationTests.swift b/Modules/RSCore/Tests/RSCoreTests/MainThreadOperationTests.swift similarity index 100% rename from RSCore/Tests/RSCoreTests/MainThreadOperationTests.swift rename to Modules/RSCore/Tests/RSCoreTests/MainThreadOperationTests.swift diff --git a/RSCore/Tests/RSCoreTests/RSCoreTests.swift b/Modules/RSCore/Tests/RSCoreTests/RSCoreTests.swift similarity index 100% rename from RSCore/Tests/RSCoreTests/RSCoreTests.swift rename to Modules/RSCore/Tests/RSCoreTests/RSCoreTests.swift diff --git a/RSCore/Tests/RSCoreTests/String+RSCoreTests.swift b/Modules/RSCore/Tests/RSCoreTests/String+RSCoreTests.swift similarity index 100% rename from RSCore/Tests/RSCoreTests/String+RSCoreTests.swift rename to Modules/RSCore/Tests/RSCoreTests/String+RSCoreTests.swift diff --git a/RSCore/Tests/RSCoreTests/XCTestManifests.swift b/Modules/RSCore/Tests/RSCoreTests/XCTestManifests.swift similarity index 100% rename from RSCore/Tests/RSCoreTests/XCTestManifests.swift rename to Modules/RSCore/Tests/RSCoreTests/XCTestManifests.swift diff --git a/RSDatabase/.github/workflows/build.yml b/Modules/RSDatabase/.github/workflows/build.yml similarity index 100% rename from RSDatabase/.github/workflows/build.yml rename to Modules/RSDatabase/.github/workflows/build.yml diff --git a/RSDatabase/.gitignore b/Modules/RSDatabase/.gitignore similarity index 100% rename from RSDatabase/.gitignore rename to Modules/RSDatabase/.gitignore diff --git a/RSDatabase/.swiftpm/xcode/xcshareddata/xcschemes/RSDatabase.xcscheme b/Modules/RSDatabase/.swiftpm/xcode/xcshareddata/xcschemes/RSDatabase.xcscheme similarity index 100% rename from RSDatabase/.swiftpm/xcode/xcshareddata/xcschemes/RSDatabase.xcscheme rename to Modules/RSDatabase/.swiftpm/xcode/xcshareddata/xcschemes/RSDatabase.xcscheme diff --git a/RSDatabase/Package.swift b/Modules/RSDatabase/Package.swift similarity index 100% rename from RSDatabase/Package.swift rename to Modules/RSDatabase/Package.swift diff --git a/RSDatabase/README.md b/Modules/RSDatabase/README.md similarity index 100% rename from RSDatabase/README.md rename to Modules/RSDatabase/README.md diff --git a/RSDatabase/Sources/RSDatabase/Database.swift b/Modules/RSDatabase/Sources/RSDatabase/Database.swift similarity index 100% rename from RSDatabase/Sources/RSDatabase/Database.swift rename to Modules/RSDatabase/Sources/RSDatabase/Database.swift diff --git a/RSDatabase/Sources/RSDatabase/DatabaseObject.swift b/Modules/RSDatabase/Sources/RSDatabase/DatabaseObject.swift similarity index 100% rename from RSDatabase/Sources/RSDatabase/DatabaseObject.swift rename to Modules/RSDatabase/Sources/RSDatabase/DatabaseObject.swift diff --git a/RSDatabase/Sources/RSDatabase/DatabaseObjectCache.swift b/Modules/RSDatabase/Sources/RSDatabase/DatabaseObjectCache.swift similarity index 100% rename from RSDatabase/Sources/RSDatabase/DatabaseObjectCache.swift rename to Modules/RSDatabase/Sources/RSDatabase/DatabaseObjectCache.swift diff --git a/RSDatabase/Sources/RSDatabase/DatabaseQueue.swift b/Modules/RSDatabase/Sources/RSDatabase/DatabaseQueue.swift similarity index 100% rename from RSDatabase/Sources/RSDatabase/DatabaseQueue.swift rename to Modules/RSDatabase/Sources/RSDatabase/DatabaseQueue.swift diff --git a/RSDatabase/Sources/RSDatabase/DatabaseTable.swift b/Modules/RSDatabase/Sources/RSDatabase/DatabaseTable.swift similarity index 100% rename from RSDatabase/Sources/RSDatabase/DatabaseTable.swift rename to Modules/RSDatabase/Sources/RSDatabase/DatabaseTable.swift diff --git a/RSDatabase/Sources/RSDatabase/Related Objects/DatabaseLookupTable.swift b/Modules/RSDatabase/Sources/RSDatabase/Related Objects/DatabaseLookupTable.swift similarity index 100% rename from RSDatabase/Sources/RSDatabase/Related Objects/DatabaseLookupTable.swift rename to Modules/RSDatabase/Sources/RSDatabase/Related Objects/DatabaseLookupTable.swift diff --git a/RSDatabase/Sources/RSDatabase/Related Objects/DatabaseRelatedObjectsTable.swift b/Modules/RSDatabase/Sources/RSDatabase/Related Objects/DatabaseRelatedObjectsTable.swift similarity index 100% rename from RSDatabase/Sources/RSDatabase/Related Objects/DatabaseRelatedObjectsTable.swift rename to Modules/RSDatabase/Sources/RSDatabase/Related Objects/DatabaseRelatedObjectsTable.swift diff --git a/RSDatabase/Sources/RSDatabase/Related Objects/RelatedObjectIDsMap.swift b/Modules/RSDatabase/Sources/RSDatabase/Related Objects/RelatedObjectIDsMap.swift similarity index 100% rename from RSDatabase/Sources/RSDatabase/Related Objects/RelatedObjectIDsMap.swift rename to Modules/RSDatabase/Sources/RSDatabase/Related Objects/RelatedObjectIDsMap.swift diff --git a/RSDatabase/Sources/RSDatabase/Related Objects/RelatedObjectsMap.swift b/Modules/RSDatabase/Sources/RSDatabase/Related Objects/RelatedObjectsMap.swift similarity index 100% rename from RSDatabase/Sources/RSDatabase/Related Objects/RelatedObjectsMap.swift rename to Modules/RSDatabase/Sources/RSDatabase/Related Objects/RelatedObjectsMap.swift diff --git a/RSDatabase/Sources/RSDatabaseObjC/FMDatabase+RSExtras.h b/Modules/RSDatabase/Sources/RSDatabaseObjC/FMDatabase+RSExtras.h similarity index 100% rename from RSDatabase/Sources/RSDatabaseObjC/FMDatabase+RSExtras.h rename to Modules/RSDatabase/Sources/RSDatabaseObjC/FMDatabase+RSExtras.h diff --git a/RSDatabase/Sources/RSDatabaseObjC/FMDatabase+RSExtras.m b/Modules/RSDatabase/Sources/RSDatabaseObjC/FMDatabase+RSExtras.m similarity index 100% rename from RSDatabase/Sources/RSDatabaseObjC/FMDatabase+RSExtras.m rename to Modules/RSDatabase/Sources/RSDatabaseObjC/FMDatabase+RSExtras.m diff --git a/RSDatabase/Sources/RSDatabaseObjC/FMDatabase.h b/Modules/RSDatabase/Sources/RSDatabaseObjC/FMDatabase.h similarity index 100% rename from RSDatabase/Sources/RSDatabaseObjC/FMDatabase.h rename to Modules/RSDatabase/Sources/RSDatabaseObjC/FMDatabase.h diff --git a/RSDatabase/Sources/RSDatabaseObjC/FMDatabase.m b/Modules/RSDatabase/Sources/RSDatabaseObjC/FMDatabase.m similarity index 100% rename from RSDatabase/Sources/RSDatabaseObjC/FMDatabase.m rename to Modules/RSDatabase/Sources/RSDatabaseObjC/FMDatabase.m diff --git a/RSDatabase/Sources/RSDatabaseObjC/FMDatabaseAdditions.h b/Modules/RSDatabase/Sources/RSDatabaseObjC/FMDatabaseAdditions.h similarity index 100% rename from RSDatabase/Sources/RSDatabaseObjC/FMDatabaseAdditions.h rename to Modules/RSDatabase/Sources/RSDatabaseObjC/FMDatabaseAdditions.h diff --git a/RSDatabase/Sources/RSDatabaseObjC/FMDatabaseAdditions.m b/Modules/RSDatabase/Sources/RSDatabaseObjC/FMDatabaseAdditions.m similarity index 100% rename from RSDatabase/Sources/RSDatabaseObjC/FMDatabaseAdditions.m rename to Modules/RSDatabase/Sources/RSDatabaseObjC/FMDatabaseAdditions.m diff --git a/RSDatabase/Sources/RSDatabaseObjC/FMResultSet+RSExtras.h b/Modules/RSDatabase/Sources/RSDatabaseObjC/FMResultSet+RSExtras.h similarity index 100% rename from RSDatabase/Sources/RSDatabaseObjC/FMResultSet+RSExtras.h rename to Modules/RSDatabase/Sources/RSDatabaseObjC/FMResultSet+RSExtras.h diff --git a/RSDatabase/Sources/RSDatabaseObjC/FMResultSet+RSExtras.m b/Modules/RSDatabase/Sources/RSDatabaseObjC/FMResultSet+RSExtras.m similarity index 100% rename from RSDatabase/Sources/RSDatabaseObjC/FMResultSet+RSExtras.m rename to Modules/RSDatabase/Sources/RSDatabaseObjC/FMResultSet+RSExtras.m diff --git a/RSDatabase/Sources/RSDatabaseObjC/FMResultSet.h b/Modules/RSDatabase/Sources/RSDatabaseObjC/FMResultSet.h similarity index 100% rename from RSDatabase/Sources/RSDatabaseObjC/FMResultSet.h rename to Modules/RSDatabase/Sources/RSDatabaseObjC/FMResultSet.h diff --git a/RSDatabase/Sources/RSDatabaseObjC/FMResultSet.m b/Modules/RSDatabase/Sources/RSDatabaseObjC/FMResultSet.m similarity index 100% rename from RSDatabase/Sources/RSDatabaseObjC/FMResultSet.m rename to Modules/RSDatabase/Sources/RSDatabaseObjC/FMResultSet.m diff --git a/RSDatabase/Sources/RSDatabaseObjC/NSString+RSDatabase.h b/Modules/RSDatabase/Sources/RSDatabaseObjC/NSString+RSDatabase.h similarity index 100% rename from RSDatabase/Sources/RSDatabaseObjC/NSString+RSDatabase.h rename to Modules/RSDatabase/Sources/RSDatabaseObjC/NSString+RSDatabase.h diff --git a/RSDatabase/Sources/RSDatabaseObjC/NSString+RSDatabase.m b/Modules/RSDatabase/Sources/RSDatabaseObjC/NSString+RSDatabase.m similarity index 100% rename from RSDatabase/Sources/RSDatabaseObjC/NSString+RSDatabase.m rename to Modules/RSDatabase/Sources/RSDatabaseObjC/NSString+RSDatabase.m diff --git a/RSDatabase/Sources/RSDatabaseObjC/RSDatabaseQueue.h b/Modules/RSDatabase/Sources/RSDatabaseObjC/RSDatabaseQueue.h similarity index 100% rename from RSDatabase/Sources/RSDatabaseObjC/RSDatabaseQueue.h rename to Modules/RSDatabase/Sources/RSDatabaseObjC/RSDatabaseQueue.h diff --git a/RSDatabase/Sources/RSDatabaseObjC/RSDatabaseQueue.m b/Modules/RSDatabase/Sources/RSDatabaseObjC/RSDatabaseQueue.m similarity index 100% rename from RSDatabase/Sources/RSDatabaseObjC/RSDatabaseQueue.m rename to Modules/RSDatabase/Sources/RSDatabaseObjC/RSDatabaseQueue.m diff --git a/RSDatabase/Sources/RSDatabaseObjC/include/RSDatabaseObjC.h b/Modules/RSDatabase/Sources/RSDatabaseObjC/include/RSDatabaseObjC.h similarity index 100% rename from RSDatabase/Sources/RSDatabaseObjC/include/RSDatabaseObjC.h rename to Modules/RSDatabase/Sources/RSDatabaseObjC/include/RSDatabaseObjC.h diff --git a/RSDatabase/Tests/RSDatabaseTests/Placeholder.swift b/Modules/RSDatabase/Tests/RSDatabaseTests/Placeholder.swift similarity index 100% rename from RSDatabase/Tests/RSDatabaseTests/Placeholder.swift rename to Modules/RSDatabase/Tests/RSDatabaseTests/Placeholder.swift diff --git a/RSTree/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata b/Modules/RSTree/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata similarity index 100% rename from RSTree/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata rename to Modules/RSTree/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata diff --git a/RSTree/LICENSE b/Modules/RSTree/LICENSE similarity index 100% rename from RSTree/LICENSE rename to Modules/RSTree/LICENSE diff --git a/RSTree/Package.swift b/Modules/RSTree/Package.swift similarity index 100% rename from RSTree/Package.swift rename to Modules/RSTree/Package.swift diff --git a/RSTree/README.md b/Modules/RSTree/README.md similarity index 100% rename from RSTree/README.md rename to Modules/RSTree/README.md diff --git a/RSTree/Sources/RSTree/NSOutlineView+RSTree.swift b/Modules/RSTree/Sources/RSTree/NSOutlineView+RSTree.swift similarity index 100% rename from RSTree/Sources/RSTree/NSOutlineView+RSTree.swift rename to Modules/RSTree/Sources/RSTree/NSOutlineView+RSTree.swift diff --git a/RSTree/Sources/RSTree/Node.swift b/Modules/RSTree/Sources/RSTree/Node.swift similarity index 100% rename from RSTree/Sources/RSTree/Node.swift rename to Modules/RSTree/Sources/RSTree/Node.swift diff --git a/RSTree/Sources/RSTree/NodePath.swift b/Modules/RSTree/Sources/RSTree/NodePath.swift similarity index 100% rename from RSTree/Sources/RSTree/NodePath.swift rename to Modules/RSTree/Sources/RSTree/NodePath.swift diff --git a/RSTree/Sources/RSTree/RSTree.swift b/Modules/RSTree/Sources/RSTree/RSTree.swift similarity index 100% rename from RSTree/Sources/RSTree/RSTree.swift rename to Modules/RSTree/Sources/RSTree/RSTree.swift diff --git a/RSTree/Sources/RSTree/TopLevelRepresentedObject.swift b/Modules/RSTree/Sources/RSTree/TopLevelRepresentedObject.swift similarity index 100% rename from RSTree/Sources/RSTree/TopLevelRepresentedObject.swift rename to Modules/RSTree/Sources/RSTree/TopLevelRepresentedObject.swift diff --git a/RSTree/Sources/RSTree/TreeController.swift b/Modules/RSTree/Sources/RSTree/TreeController.swift similarity index 100% rename from RSTree/Sources/RSTree/TreeController.swift rename to Modules/RSTree/Sources/RSTree/TreeController.swift diff --git a/RSWeb/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata b/Modules/RSWeb/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata similarity index 100% rename from RSWeb/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata rename to Modules/RSWeb/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata diff --git a/RSWeb/LICENSE b/Modules/RSWeb/LICENSE similarity index 100% rename from RSWeb/LICENSE rename to Modules/RSWeb/LICENSE diff --git a/RSWeb/Package.swift b/Modules/RSWeb/Package.swift similarity index 100% rename from RSWeb/Package.swift rename to Modules/RSWeb/Package.swift diff --git a/RSWeb/README.md b/Modules/RSWeb/README.md similarity index 100% rename from RSWeb/README.md rename to Modules/RSWeb/README.md diff --git a/RSWeb/Sources/RSWeb/CacheControlInfo.swift b/Modules/RSWeb/Sources/RSWeb/CacheControlInfo.swift similarity index 100% rename from RSWeb/Sources/RSWeb/CacheControlInfo.swift rename to Modules/RSWeb/Sources/RSWeb/CacheControlInfo.swift diff --git a/RSWeb/Sources/RSWeb/Dictionary+RSWeb.swift b/Modules/RSWeb/Sources/RSWeb/Dictionary+RSWeb.swift similarity index 100% rename from RSWeb/Sources/RSWeb/Dictionary+RSWeb.swift rename to Modules/RSWeb/Sources/RSWeb/Dictionary+RSWeb.swift diff --git a/RSWeb/Sources/RSWeb/DownloadProgress.swift b/Modules/RSWeb/Sources/RSWeb/DownloadProgress.swift similarity index 100% rename from RSWeb/Sources/RSWeb/DownloadProgress.swift rename to Modules/RSWeb/Sources/RSWeb/DownloadProgress.swift diff --git a/RSWeb/Sources/RSWeb/DownloadSession.swift b/Modules/RSWeb/Sources/RSWeb/DownloadSession.swift similarity index 100% rename from RSWeb/Sources/RSWeb/DownloadSession.swift rename to Modules/RSWeb/Sources/RSWeb/DownloadSession.swift diff --git a/RSWeb/Sources/RSWeb/Downloader.swift b/Modules/RSWeb/Sources/RSWeb/Downloader.swift similarity index 100% rename from RSWeb/Sources/RSWeb/Downloader.swift rename to Modules/RSWeb/Sources/RSWeb/Downloader.swift diff --git a/RSWeb/Sources/RSWeb/HTMLMetadataCache.swift b/Modules/RSWeb/Sources/RSWeb/HTMLMetadataCache.swift similarity index 100% rename from RSWeb/Sources/RSWeb/HTMLMetadataCache.swift rename to Modules/RSWeb/Sources/RSWeb/HTMLMetadataCache.swift diff --git a/RSWeb/Sources/RSWeb/HTMLMetadataDownloader.swift b/Modules/RSWeb/Sources/RSWeb/HTMLMetadataDownloader.swift similarity index 100% rename from RSWeb/Sources/RSWeb/HTMLMetadataDownloader.swift rename to Modules/RSWeb/Sources/RSWeb/HTMLMetadataDownloader.swift diff --git a/RSWeb/Sources/RSWeb/HTTPConditionalGetInfo.swift b/Modules/RSWeb/Sources/RSWeb/HTTPConditionalGetInfo.swift similarity index 100% rename from RSWeb/Sources/RSWeb/HTTPConditionalGetInfo.swift rename to Modules/RSWeb/Sources/RSWeb/HTTPConditionalGetInfo.swift diff --git a/RSWeb/Sources/RSWeb/HTTPDateInfo.swift b/Modules/RSWeb/Sources/RSWeb/HTTPDateInfo.swift similarity index 100% rename from RSWeb/Sources/RSWeb/HTTPDateInfo.swift rename to Modules/RSWeb/Sources/RSWeb/HTTPDateInfo.swift diff --git a/RSWeb/Sources/RSWeb/HTTPLinkPagingInfo.swift b/Modules/RSWeb/Sources/RSWeb/HTTPLinkPagingInfo.swift similarity index 100% rename from RSWeb/Sources/RSWeb/HTTPLinkPagingInfo.swift rename to Modules/RSWeb/Sources/RSWeb/HTTPLinkPagingInfo.swift diff --git a/RSWeb/Sources/RSWeb/HTTPMethod.swift b/Modules/RSWeb/Sources/RSWeb/HTTPMethod.swift similarity index 100% rename from RSWeb/Sources/RSWeb/HTTPMethod.swift rename to Modules/RSWeb/Sources/RSWeb/HTTPMethod.swift diff --git a/RSWeb/Sources/RSWeb/HTTPRequestHeader.swift b/Modules/RSWeb/Sources/RSWeb/HTTPRequestHeader.swift similarity index 100% rename from RSWeb/Sources/RSWeb/HTTPRequestHeader.swift rename to Modules/RSWeb/Sources/RSWeb/HTTPRequestHeader.swift diff --git a/RSWeb/Sources/RSWeb/HTTPResponse429.swift b/Modules/RSWeb/Sources/RSWeb/HTTPResponse429.swift similarity index 100% rename from RSWeb/Sources/RSWeb/HTTPResponse429.swift rename to Modules/RSWeb/Sources/RSWeb/HTTPResponse429.swift diff --git a/RSWeb/Sources/RSWeb/HTTPResponseCode.swift b/Modules/RSWeb/Sources/RSWeb/HTTPResponseCode.swift similarity index 100% rename from RSWeb/Sources/RSWeb/HTTPResponseCode.swift rename to Modules/RSWeb/Sources/RSWeb/HTTPResponseCode.swift diff --git a/RSWeb/Sources/RSWeb/HTTPResponseHeader.swift b/Modules/RSWeb/Sources/RSWeb/HTTPResponseHeader.swift similarity index 100% rename from RSWeb/Sources/RSWeb/HTTPResponseHeader.swift rename to Modules/RSWeb/Sources/RSWeb/HTTPResponseHeader.swift diff --git a/RSWeb/Sources/RSWeb/MacWebBrowser.swift b/Modules/RSWeb/Sources/RSWeb/MacWebBrowser.swift similarity index 100% rename from RSWeb/Sources/RSWeb/MacWebBrowser.swift rename to Modules/RSWeb/Sources/RSWeb/MacWebBrowser.swift diff --git a/RSWeb/Sources/RSWeb/MimeType.swift b/Modules/RSWeb/Sources/RSWeb/MimeType.swift similarity index 100% rename from RSWeb/Sources/RSWeb/MimeType.swift rename to Modules/RSWeb/Sources/RSWeb/MimeType.swift diff --git a/RSWeb/Sources/RSWeb/Reachability.swift b/Modules/RSWeb/Sources/RSWeb/Reachability.swift similarity index 100% rename from RSWeb/Sources/RSWeb/Reachability.swift rename to Modules/RSWeb/Sources/RSWeb/Reachability.swift diff --git a/RSWeb/Sources/RSWeb/SpecialCases.swift b/Modules/RSWeb/Sources/RSWeb/SpecialCases.swift similarity index 100% rename from RSWeb/Sources/RSWeb/SpecialCases.swift rename to Modules/RSWeb/Sources/RSWeb/SpecialCases.swift diff --git a/RSWeb/Sources/RSWeb/String+RSWeb.swift b/Modules/RSWeb/Sources/RSWeb/String+RSWeb.swift similarity index 100% rename from RSWeb/Sources/RSWeb/String+RSWeb.swift rename to Modules/RSWeb/Sources/RSWeb/String+RSWeb.swift diff --git a/RSWeb/Sources/RSWeb/URL+RSWeb.swift b/Modules/RSWeb/Sources/RSWeb/URL+RSWeb.swift similarity index 100% rename from RSWeb/Sources/RSWeb/URL+RSWeb.swift rename to Modules/RSWeb/Sources/RSWeb/URL+RSWeb.swift diff --git a/RSWeb/Sources/RSWeb/URLComponents+RSWeb.swift b/Modules/RSWeb/Sources/RSWeb/URLComponents+RSWeb.swift similarity index 100% rename from RSWeb/Sources/RSWeb/URLComponents+RSWeb.swift rename to Modules/RSWeb/Sources/RSWeb/URLComponents+RSWeb.swift diff --git a/RSWeb/Sources/RSWeb/URLRequest+RSWeb.swift b/Modules/RSWeb/Sources/RSWeb/URLRequest+RSWeb.swift similarity index 100% rename from RSWeb/Sources/RSWeb/URLRequest+RSWeb.swift rename to Modules/RSWeb/Sources/RSWeb/URLRequest+RSWeb.swift diff --git a/RSWeb/Sources/RSWeb/URLResponse+RSWeb.swift b/Modules/RSWeb/Sources/RSWeb/URLResponse+RSWeb.swift similarity index 100% rename from RSWeb/Sources/RSWeb/URLResponse+RSWeb.swift rename to Modules/RSWeb/Sources/RSWeb/URLResponse+RSWeb.swift diff --git a/RSWeb/Sources/RSWeb/UserAgent.swift b/Modules/RSWeb/Sources/RSWeb/UserAgent.swift similarity index 100% rename from RSWeb/Sources/RSWeb/UserAgent.swift rename to Modules/RSWeb/Sources/RSWeb/UserAgent.swift diff --git a/RSWeb/Sources/RSWeb/WebServices/Transport.swift b/Modules/RSWeb/Sources/RSWeb/WebServices/Transport.swift similarity index 100% rename from RSWeb/Sources/RSWeb/WebServices/Transport.swift rename to Modules/RSWeb/Sources/RSWeb/WebServices/Transport.swift diff --git a/RSWeb/Sources/RSWeb/WebServices/TransportJSON.swift b/Modules/RSWeb/Sources/RSWeb/WebServices/TransportJSON.swift similarity index 100% rename from RSWeb/Sources/RSWeb/WebServices/TransportJSON.swift rename to Modules/RSWeb/Sources/RSWeb/WebServices/TransportJSON.swift diff --git a/RSWeb/Tests/RSWebTests/DictionaryTests.swift b/Modules/RSWeb/Tests/RSWebTests/DictionaryTests.swift similarity index 100% rename from RSWeb/Tests/RSWebTests/DictionaryTests.swift rename to Modules/RSWeb/Tests/RSWebTests/DictionaryTests.swift diff --git a/RSWeb/Tests/RSWebTests/RSWebTests.swift b/Modules/RSWeb/Tests/RSWebTests/RSWebTests.swift similarity index 100% rename from RSWeb/Tests/RSWebTests/RSWebTests.swift rename to Modules/RSWeb/Tests/RSWebTests/RSWebTests.swift diff --git a/RSWeb/Tests/RSWebTests/StringTests.swift b/Modules/RSWeb/Tests/RSWebTests/StringTests.swift similarity index 100% rename from RSWeb/Tests/RSWebTests/StringTests.swift rename to Modules/RSWeb/Tests/RSWebTests/StringTests.swift diff --git a/Secrets/.gitignore b/Modules/Secrets/.gitignore similarity index 100% rename from Secrets/.gitignore rename to Modules/Secrets/.gitignore diff --git a/Secrets/Package.swift b/Modules/Secrets/Package.swift similarity index 100% rename from Secrets/Package.swift rename to Modules/Secrets/Package.swift diff --git a/Secrets/README.md b/Modules/Secrets/README.md similarity index 100% rename from Secrets/README.md rename to Modules/Secrets/README.md diff --git a/Secrets/Sources/Secrets/Credentials.swift b/Modules/Secrets/Sources/Secrets/Credentials.swift similarity index 100% rename from Secrets/Sources/Secrets/Credentials.swift rename to Modules/Secrets/Sources/Secrets/Credentials.swift diff --git a/Secrets/Sources/Secrets/CredentialsManager.swift b/Modules/Secrets/Sources/Secrets/CredentialsManager.swift similarity index 100% rename from Secrets/Sources/Secrets/CredentialsManager.swift rename to Modules/Secrets/Sources/Secrets/CredentialsManager.swift diff --git a/Secrets/Sources/Secrets/SecretKey.swift.gyb b/Modules/Secrets/Sources/Secrets/SecretKey.swift.gyb similarity index 100% rename from Secrets/Sources/Secrets/SecretKey.swift.gyb rename to Modules/Secrets/Sources/Secrets/SecretKey.swift.gyb diff --git a/SyncDatabase/.gitignore b/Modules/SyncDatabase/.gitignore similarity index 100% rename from SyncDatabase/.gitignore rename to Modules/SyncDatabase/.gitignore diff --git a/SyncDatabase/Package.swift b/Modules/SyncDatabase/Package.swift similarity index 100% rename from SyncDatabase/Package.swift rename to Modules/SyncDatabase/Package.swift diff --git a/SyncDatabase/README.md b/Modules/SyncDatabase/README.md similarity index 100% rename from SyncDatabase/README.md rename to Modules/SyncDatabase/README.md diff --git a/SyncDatabase/Sources/SyncDatabase/Constants.swift b/Modules/SyncDatabase/Sources/SyncDatabase/Constants.swift similarity index 100% rename from SyncDatabase/Sources/SyncDatabase/Constants.swift rename to Modules/SyncDatabase/Sources/SyncDatabase/Constants.swift diff --git a/SyncDatabase/Sources/SyncDatabase/SyncDatabase.swift b/Modules/SyncDatabase/Sources/SyncDatabase/SyncDatabase.swift similarity index 100% rename from SyncDatabase/Sources/SyncDatabase/SyncDatabase.swift rename to Modules/SyncDatabase/Sources/SyncDatabase/SyncDatabase.swift diff --git a/SyncDatabase/Sources/SyncDatabase/SyncStatus.swift b/Modules/SyncDatabase/Sources/SyncDatabase/SyncStatus.swift similarity index 100% rename from SyncDatabase/Sources/SyncDatabase/SyncStatus.swift rename to Modules/SyncDatabase/Sources/SyncDatabase/SyncStatus.swift diff --git a/SyncDatabase/Sources/SyncDatabase/SyncStatusTable.swift b/Modules/SyncDatabase/Sources/SyncDatabase/SyncStatusTable.swift similarity index 100% rename from SyncDatabase/Sources/SyncDatabase/SyncStatusTable.swift rename to Modules/SyncDatabase/Sources/SyncDatabase/SyncStatusTable.swift diff --git a/NetNewsWire.xcodeproj/project.pbxproj b/NetNewsWire.xcodeproj/project.pbxproj index 0b0ceb953..af4128282 100644 --- a/NetNewsWire.xcodeproj/project.pbxproj +++ b/NetNewsWire.xcodeproj/project.pbxproj @@ -267,21 +267,11 @@ 51314714235C420900387FDC /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Intents.strings; sourceTree = ""; }; 513C5CE6232571C2003D4054 /* NetNewsWire iOS Share Extension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "NetNewsWire iOS Share Extension.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; 518B2ED22351B3DD00400001 /* NetNewsWire-iOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "NetNewsWire-iOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 51CD32A824D2CB25009ABAEF /* SyncDatabase */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = SyncDatabase; sourceTree = ""; }; - 51CD32C324D2CD57009ABAEF /* ArticlesDatabase */ = {isa = PBXFileReference; lastKnownFileType = folder; path = ArticlesDatabase; sourceTree = ""; }; - 51CD32C424D2CF1D009ABAEF /* Articles */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Articles; sourceTree = ""; }; - 51CD32C624D2DEF9009ABAEF /* Account */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = Account; sourceTree = ""; }; - 51CD32C724D2E06C009ABAEF /* Secrets */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Secrets; sourceTree = ""; }; 6581C73320CED60000F4AD34 /* Subscribe to Feed.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "Subscribe to Feed.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; 840D617C2029031C009BC708 /* NetNewsWire.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = NetNewsWire.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 8413876B2CD896E000E8490F /* RSCore */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = RSCore; sourceTree = ""; }; - 8413878C2CDC78EE00E8490F /* RSWeb */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = RSWeb; sourceTree = ""; }; - 8417FA3E2CDF2E31005F989B /* RSDatabase */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = RSDatabase; sourceTree = ""; }; 845B14A51FC2299E0013CF92 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; - 847C4C0C2CDF22DD008BF5FE /* RSTree */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = RSTree; sourceTree = ""; }; 849C64601ED37A5D003D8FC0 /* NetNewsWire.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = NetNewsWire.app; sourceTree = BUILT_PRODUCTS_DIR; }; 849C64711ED37A5D003D8FC0 /* NetNewsWireTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NetNewsWireTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 849E61B82CE85D09008AF514 /* Parser */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = Parser; sourceTree = ""; }; 84CBDDAE1FD3674C005A61AA /* Technotes */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Technotes; sourceTree = ""; }; 84D2200922B0BC4B0019E085 /* CONTRIBUTING.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = CONTRIBUTING.md; sourceTree = ""; }; /* End PBXFileReference section */ @@ -503,6 +493,7 @@ /* End PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet section */ /* Begin PBXFileSystemSynchronizedRootGroup section */ + 841361432D2CEE2E009FE996 /* Modules */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = Modules; sourceTree = ""; }; 8498E4B22D27A766009F5438 /* iOS */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (8498E53C2D27A766009F5438 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, 8498E53D2D27A766009F5438 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, 8498E53E2D27A766009F5438 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = iOS; sourceTree = ""; }; 84BAE0AA2CE1C4D500402E69 /* Mac */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (84BAE1402CE1C4D500402E69 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, 84BAE1412CE1C4D500402E69 /* PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet */, 84BAE1422CE1C4D500402E69 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, 84BAE1432CE1C4D500402E69 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = Mac; sourceTree = ""; }; 84C1EB5E2CDFE18E00C7456A /* xcconfig */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (84C1EB602CDFE18E00C7456A /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (common, ); path = xcconfig; sourceTree = ""; }; @@ -636,16 +627,7 @@ 84C1EB7C2CDFE31700C7456A /* Tests */, 84C1EB5E2CDFE18E00C7456A /* xcconfig */, 849C64611ED37A5D003D8FC0 /* Products */, - 51CD32C624D2DEF9009ABAEF /* Account */, - 51CD32C424D2CF1D009ABAEF /* Articles */, - 51CD32C324D2CD57009ABAEF /* ArticlesDatabase */, - 51CD32C724D2E06C009ABAEF /* Secrets */, - 51CD32A824D2CB25009ABAEF /* SyncDatabase */, - 849E61B82CE85D09008AF514 /* Parser */, - 8417FA3E2CDF2E31005F989B /* RSDatabase */, - 847C4C0C2CDF22DD008BF5FE /* RSTree */, - 8413878C2CDC78EE00E8490F /* RSWeb */, - 8413876B2CD896E000E8490F /* RSCore */, + 841361432D2CEE2E009FE996 /* Modules */, ); sourceTree = ""; usesTabs = 1;