diff --git a/Signal/src/AppDelegate.m b/Signal/src/AppDelegate.m
index d00700ed6..3b81f6c2a 100644
--- a/Signal/src/AppDelegate.m
+++ b/Signal/src/AppDelegate.m
@@ -44,11 +44,11 @@
 #import <SignalServiceKit/OWSMessageSender.h>
 #import <SignalServiceKit/OWSPrimaryStorage+Calling.h>
 #import <SignalServiceKit/OWSReadReceiptManager.h>
+#import <SignalServiceKit/SSKEnvironment.h>
 #import <SignalServiceKit/TSAccountManager.h>
 #import <SignalServiceKit/TSDatabaseView.h>
 #import <SignalServiceKit/TSPreKeyManager.h>
 #import <SignalServiceKit/TSSocketManager.h>
-#import <SignalServiceKit/TextSecureKitEnv.h>
 #import <YapDatabase/YapDatabaseCryptoUtils.h>
 #import <sys/sysctl.h>
 
diff --git a/Signal/src/environment/NotificationsManager.m b/Signal/src/environment/NotificationsManager.m
index 8525e6aed..be8667ed5 100644
--- a/Signal/src/environment/NotificationsManager.m
+++ b/Signal/src/environment/NotificationsManager.m
@@ -12,11 +12,11 @@
 #import <SignalMessaging/OWSPreferences.h>
 #import <SignalMessaging/OWSSounds.h>
 #import <SignalServiceKit/NSString+SSK.h>
+#import <SignalServiceKit/SSKEnvironment.h>
 #import <SignalServiceKit/TSCall.h>
 #import <SignalServiceKit/TSContactThread.h>
 #import <SignalServiceKit/TSErrorMessage.h>
 #import <SignalServiceKit/TSIncomingMessage.h>
-#import <SignalServiceKit/TextSecureKitEnv.h>
 #import <SignalServiceKit/Threading.h>
 #import <YapDatabase/YapDatabaseTransaction.h>
 
diff --git a/Signal/test/util/SearcherTest.swift b/Signal/test/util/SearcherTest.swift
index f508e62ff..21a0b92b3 100644
--- a/Signal/test/util/SearcherTest.swift
+++ b/Signal/test/util/SearcherTest.swift
@@ -7,10 +7,10 @@ import XCTest
 @testable import SignalMessaging
 
 @objc
-class StubbableEnvironment: TextSecureKitEnv {
-    let proxy: TextSecureKitEnv
+class StubbableEnvironment: SSKEnvironment {
+    let proxy: SSKEnvironment
 
-    init(proxy: TextSecureKitEnv) {
+    init(proxy: SSKEnvironment) {
         self.proxy = proxy
         super.init(callMessageHandler: proxy.callMessageHandler, contactsManager: proxy.contactsManager, messageSender: proxy.messageSender, notificationsManager: proxy.notificationsManager, profileManager: proxy.profileManager)
     }
@@ -101,12 +101,12 @@ class ConversationSearcherTest: XCTestCase {
 
     // MARK: - Test Life Cycle
 
-    var originalEnvironment: TextSecureKitEnv?
+    var originalEnvironment: SSKEnvironment?
 
     override func tearDown() {
         super.tearDown()
 
-        TextSecureKitEnv.setShared(originalEnvironment!)
+        SSKEnvironment.setShared(originalEnvironment!)
     }
 
     override func setUp() {
@@ -118,12 +118,12 @@ class ConversationSearcherTest: XCTestCase {
         TSGroupThread.removeAllObjectsInCollection()
         TSMessage.removeAllObjectsInCollection()
 
-        originalEnvironment = TextSecureKitEnv.shared()
+        originalEnvironment = SSKEnvironment.shared()
         assert(originalEnvironment != nil)
 
         let testEnvironment: StubbableEnvironment = StubbableEnvironment(proxy: originalEnvironment!)
         testEnvironment.stubbedContactsManager = FakeContactsManager()
-        TextSecureKitEnv.setShared(testEnvironment)
+        SSKEnvironment.setShared(testEnvironment)
 
         self.dbConnection.readWrite { transaction in
             let bookModel = TSGroupModel(title: "Book Club", memberIds: [aliceRecipientId, bobRecipientId], image: nil, groupId: Randomness.generateRandomBytes(16))
@@ -375,7 +375,7 @@ class ConversationSearcherTest: XCTestCase {
     private func getResultSet(searchText: String) -> SearchResultSet {
         var results: SearchResultSet!
         self.dbConnection.read { transaction in
-            results = self.searcher.results(searchText: searchText, transaction: transaction, contactsManager: TextSecureKitEnv.shared().contactsManager)
+            results = self.searcher.results(searchText: searchText, transaction: transaction, contactsManager: SSKEnvironment.shared().contactsManager)
         }
         return results
     }
diff --git a/SignalMessaging/environment/AppSetup.m b/SignalMessaging/environment/AppSetup.m
index f09279f4b..e61c8b5c4 100644
--- a/SignalMessaging/environment/AppSetup.m
+++ b/SignalMessaging/environment/AppSetup.m
@@ -12,7 +12,7 @@
 #import <SignalMessaging/SignalMessaging-Swift.h>
 #import <SignalServiceKit/OWSBackgroundTask.h>
 #import <SignalServiceKit/OWSStorage.h>
-#import <SignalServiceKit/TextSecureKitEnv.h>
+#import <SignalServiceKit/SSKEnvironment.h>
 
 NS_ASSUME_NONNULL_BEGIN
 
@@ -39,13 +39,13 @@ NS_ASSUME_NONNULL_BEGIN
         id<OWSCallMessageHandler> callMessageHandler = callMessageHandlerBlock();
         id<NotificationsProtocol> notificationsManager = notificationsManagerBlock();
 
-        TextSecureKitEnv *sharedEnv =
-            [[TextSecureKitEnv alloc] initWithCallMessageHandler:callMessageHandler
-                                                 contactsManager:[Environment current].contactsManager
-                                                   messageSender:[Environment current].messageSender
-                                            notificationsManager:notificationsManager
-                                                  profileManager:OWSProfileManager.sharedManager];
-        [TextSecureKitEnv setSharedEnv:sharedEnv];
+        SSKEnvironment *sharedEnv =
+            [[SSKEnvironment alloc] initWithCallMessageHandler:callMessageHandler
+                                               contactsManager:[Environment current].contactsManager
+                                                 messageSender:[Environment current].messageSender
+                                          notificationsManager:notificationsManager
+                                                profileManager:OWSProfileManager.sharedManager];
+        [SSKEnvironment setSharedEnv:sharedEnv];
 
         // Register renamed classes.
         [NSKeyedUnarchiver setClass:[OWSUserProfile class] forClassName:[OWSUserProfile collection]];
diff --git a/SignalMessaging/profiles/OWSProfileManager.m b/SignalMessaging/profiles/OWSProfileManager.m
index a3262e6be..212293fc3 100644
--- a/SignalMessaging/profiles/OWSProfileManager.m
+++ b/SignalMessaging/profiles/OWSProfileManager.m
@@ -20,12 +20,12 @@
 #import <SignalServiceKit/OWSProfileKeyMessage.h>
 #import <SignalServiceKit/OWSRequestBuilder.h>
 #import <SignalServiceKit/OWSSignalService.h>
+#import <SignalServiceKit/SSKEnvironment.h>
 #import <SignalServiceKit/TSAccountManager.h>
 #import <SignalServiceKit/TSGroupThread.h>
 #import <SignalServiceKit/TSNetworkManager.h>
 #import <SignalServiceKit/TSThread.h>
 #import <SignalServiceKit/TSYapDatabaseObject.h>
-#import <SignalServiceKit/TextSecureKitEnv.h>
 #import <SignalServiceKit/UIImage+OWS.h>
 
 NS_ASSUME_NONNULL_BEGIN
diff --git a/SignalServiceKit/src/Contacts/Contact.m b/SignalServiceKit/src/Contacts/Contact.m
index 86dd0ede8..1360ab516 100644
--- a/SignalServiceKit/src/Contacts/Contact.m
+++ b/SignalServiceKit/src/Contacts/Contact.m
@@ -7,9 +7,9 @@
 #import "NSString+SSK.h"
 #import "OWSPrimaryStorage.h"
 #import "PhoneNumber.h"
+#import "SSKEnvironment.h"
 #import "SignalRecipient.h"
 #import "TSAccountManager.h"
-#import "TextSecureKitEnv.h"
 
 @import Contacts;
 
diff --git a/SignalServiceKit/src/Contacts/Threads/TSContactThread.m b/SignalServiceKit/src/Contacts/Threads/TSContactThread.m
index c882b5e52..44e44093a 100644
--- a/SignalServiceKit/src/Contacts/Threads/TSContactThread.m
+++ b/SignalServiceKit/src/Contacts/Threads/TSContactThread.m
@@ -7,7 +7,7 @@
 #import "ContactsUpdater.h"
 #import "NotificationsProtocol.h"
 #import "OWSIdentityManager.h"
-#import "TextSecureKitEnv.h"
+#import "SSKEnvironment.h"
 #import <YapDatabase/YapDatabaseConnection.h>
 #import <YapDatabase/YapDatabaseTransaction.h>
 
@@ -80,7 +80,7 @@ NS_ASSUME_NONNULL_BEGIN
 // TODO deprecate this? seems weird to access the displayName in the DB model
 - (NSString *)name
 {
-    return [[TextSecureKitEnv sharedEnv].contactsManager displayNameForPhoneIdentifier:self.contactIdentifier];
+    return [[SSKEnvironment sharedEnv].contactsManager displayNameForPhoneIdentifier:self.contactIdentifier];
 }
 
 
diff --git a/SignalServiceKit/src/Devices/OWSRecordTranscriptJob.m b/SignalServiceKit/src/Devices/OWSRecordTranscriptJob.m
index 74e3c3b8d..9b0b9efbf 100644
--- a/SignalServiceKit/src/Devices/OWSRecordTranscriptJob.m
+++ b/SignalServiceKit/src/Devices/OWSRecordTranscriptJob.m
@@ -8,12 +8,12 @@
 #import "OWSIncomingSentMessageTranscript.h"
 #import "OWSPrimaryStorage+SessionStore.h"
 #import "OWSReadReceiptManager.h"
+#import "SSKEnvironment.h"
 #import "TSAttachmentPointer.h"
 #import "TSInfoMessage.h"
 #import "TSNetworkManager.h"
 #import "TSOutgoingMessage.h"
 #import "TSQuotedMessage.h"
-#import "TextSecureKitEnv.h"
 
 NS_ASSUME_NONNULL_BEGIN
 
@@ -36,7 +36,7 @@ NS_ASSUME_NONNULL_BEGIN
                                         networkManager:TSNetworkManager.sharedManager
                                         primaryStorage:OWSPrimaryStorage.sharedManager
                                     readReceiptManager:OWSReadReceiptManager.sharedManager
-                                       contactsManager:[TextSecureKitEnv sharedEnv].contactsManager];
+                                       contactsManager:[SSKEnvironment sharedEnv].contactsManager];
 }
 
 - (instancetype)initWithIncomingSentMessageTranscript:(OWSIncomingSentMessageTranscript *)incomingSentMessageTranscript
diff --git a/SignalServiceKit/src/Messages/DeviceSyncing/OWSSyncContactsMessage.m b/SignalServiceKit/src/Messages/DeviceSyncing/OWSSyncContactsMessage.m
index 30028289a..0e97dfb23 100644
--- a/SignalServiceKit/src/Messages/DeviceSyncing/OWSSyncContactsMessage.m
+++ b/SignalServiceKit/src/Messages/DeviceSyncing/OWSSyncContactsMessage.m
@@ -9,11 +9,11 @@
 #import "OWSContactsOutputStream.h"
 #import "OWSIdentityManager.h"
 #import "ProfileManagerProtocol.h"
+#import "SSKEnvironment.h"
 #import "SignalAccount.h"
 #import "TSAttachment.h"
 #import "TSAttachmentStream.h"
 #import "TSContactThread.h"
-#import "TextSecureKitEnv.h"
 #import <SignalServiceKit/SignalServiceKit-Swift.h>
 
 NS_ASSUME_NONNULL_BEGIN
@@ -81,7 +81,7 @@ NS_ASSUME_NONNULL_BEGIN
 
 - (nullable NSData *)buildPlainTextAttachmentDataWithTransaction:(YapDatabaseReadTransaction *)transaction
 {
-    id<ContactsManagerProtocol> contactsManager = TextSecureKitEnv.sharedEnv.contactsManager;
+    id<ContactsManagerProtocol> contactsManager = SSKEnvironment.sharedEnv.contactsManager;
 
     // TODO use temp file stream to avoid loading everything into memory at once
     // First though, we need to re-engineer our attachment process to accept streams (encrypting with stream,
diff --git a/SignalServiceKit/src/Messages/Interactions/TSErrorMessage.m b/SignalServiceKit/src/Messages/Interactions/TSErrorMessage.m
index de9d614ce..94681bec1 100644
--- a/SignalServiceKit/src/Messages/Interactions/TSErrorMessage.m
+++ b/SignalServiceKit/src/Messages/Interactions/TSErrorMessage.m
@@ -6,9 +6,9 @@
 #import "ContactsManagerProtocol.h"
 #import "NSDate+OWS.h"
 #import "OWSMessageManager.h"
+#import "SSKEnvironment.h"
 #import "TSContactThread.h"
 #import "TSErrorMessage_privateConstructor.h"
-#import "TextSecureKitEnv.h"
 #import <SignalServiceKit/SignalServiceKit-Swift.h>
 #import <YapDatabase/YapDatabaseConnection.h>
 
@@ -125,7 +125,7 @@ NSUInteger TSErrorMessageSchemaVersion = 1;
                     @"Shown when signal users safety numbers changed, embeds the user's {{name or phone number}}");
 
                 NSString *recipientDisplayName =
-                    [[TextSecureKitEnv sharedEnv].contactsManager displayNameForPhoneIdentifier:self.recipientId];
+                    [[SSKEnvironment sharedEnv].contactsManager displayNameForPhoneIdentifier:self.recipientId];
                 return [NSString stringWithFormat:messageFormat, recipientDisplayName];
             } else {
                 // recipientId will be nil for legacy errors
diff --git a/SignalServiceKit/src/Messages/Interactions/TSInfoMessage.m b/SignalServiceKit/src/Messages/Interactions/TSInfoMessage.m
index 5100b1fc5..4bec94699 100644
--- a/SignalServiceKit/src/Messages/Interactions/TSInfoMessage.m
+++ b/SignalServiceKit/src/Messages/Interactions/TSInfoMessage.m
@@ -5,7 +5,7 @@
 #import "TSInfoMessage.h"
 #import "ContactsManagerProtocol.h"
 #import "NSDate+OWS.h"
-#import "TextSecureKitEnv.h"
+#import "SSKEnvironment.h"
 #import <YapDatabase/YapDatabaseConnection.h>
 
 NS_ASSUME_NONNULL_BEGIN
@@ -120,7 +120,7 @@ NSUInteger TSInfoMessageSchemaVersion = 1;
             return NSLocalizedString(@"UNSUPPORTED_ATTACHMENT", nil);
         case TSInfoMessageUserNotRegistered:
             if (self.unregisteredRecipientId.length > 0) {
-                id<ContactsManagerProtocol> contactsManager = [TextSecureKitEnv sharedEnv].contactsManager;
+                id<ContactsManagerProtocol> contactsManager = [SSKEnvironment sharedEnv].contactsManager;
                 NSString *recipientName = [contactsManager displayNameForPhoneIdentifier:self.unregisteredRecipientId];
                 return [NSString stringWithFormat:NSLocalizedString(@"ERROR_UNREGISTERED_USER_FORMAT",
                                                       @"Format string for 'unregistered user' error. Embeds {{the "
diff --git a/SignalServiceKit/src/Messages/Interactions/TSOutgoingMessage.m b/SignalServiceKit/src/Messages/Interactions/TSOutgoingMessage.m
index d9f0b555d..717b89b06 100644
--- a/SignalServiceKit/src/Messages/Interactions/TSOutgoingMessage.m
+++ b/SignalServiceKit/src/Messages/Interactions/TSOutgoingMessage.m
@@ -10,13 +10,13 @@
 #import "OWSOutgoingSyncMessage.h"
 #import "OWSPrimaryStorage.h"
 #import "ProtoUtils.h"
+#import "SSKEnvironment.h"
 #import "SignalRecipient.h"
 #import "TSAccountManager.h"
 #import "TSAttachmentStream.h"
 #import "TSContactThread.h"
 #import "TSGroupThread.h"
 #import "TSQuotedMessage.h"
-#import "TextSecureKitEnv.h"
 #import <SignalServiceKit/SignalServiceKit-Swift.h>
 #import <YapDatabase/YapDatabase.h>
 #import <YapDatabase/YapDatabaseTransaction.h>
diff --git a/SignalServiceKit/src/Messages/OWSBatchMessageProcessor.m b/SignalServiceKit/src/Messages/OWSBatchMessageProcessor.m
index a250ba9e5..71a7a0be4 100644
--- a/SignalServiceKit/src/Messages/OWSBatchMessageProcessor.m
+++ b/SignalServiceKit/src/Messages/OWSBatchMessageProcessor.m
@@ -13,10 +13,10 @@
 #import "OWSPrimaryStorage.h"
 #import "OWSQueues.h"
 #import "OWSStorage.h"
+#import "SSKEnvironment.h"
 #import "TSDatabaseView.h"
 #import "TSErrorMessage.h"
 #import "TSYapDatabaseObject.h"
-#import "TextSecureKitEnv.h"
 #import "Threading.h"
 #import <SignalServiceKit/SignalServiceKit-Swift.h>
 #import <YapDatabase/YapDatabaseAutoView.h>
@@ -390,8 +390,8 @@ NSString *const OWSMessageContentJobFinderExtensionGroup = @"OWSMessageContentJo
                 YapDatabaseReadWriteTransaction *transaction) {
                 // TODO: Add analytics.
                 TSErrorMessage *errorMessage = [TSErrorMessage corruptedMessageInUnknownThread];
-                [[TextSecureKitEnv sharedEnv].notificationsManager notifyUserForThreadlessErrorMessage:errorMessage
-                                                                                           transaction:transaction];
+                [[SSKEnvironment sharedEnv].notificationsManager notifyUserForThreadlessErrorMessage:errorMessage
+                                                                                         transaction:transaction];
             };
 
             @try {
diff --git a/SignalServiceKit/src/Messages/OWSBlockingManager.m b/SignalServiceKit/src/Messages/OWSBlockingManager.m
index b7564c1a3..3f31c8728 100644
--- a/SignalServiceKit/src/Messages/OWSBlockingManager.m
+++ b/SignalServiceKit/src/Messages/OWSBlockingManager.m
@@ -9,7 +9,7 @@
 #import "OWSBlockedPhoneNumbersMessage.h"
 #import "OWSMessageSender.h"
 #import "OWSPrimaryStorage.h"
-#import "TextSecureKitEnv.h"
+#import "SSKEnvironment.h"
 #import "YapDatabaseConnection+OWS.h"
 
 NS_ASSUME_NONNULL_BEGIN
@@ -51,7 +51,7 @@ NSString *const kOWSBlockingManager_SyncedBlockedPhoneNumbersKey = @"kOWSBlockin
 - (instancetype)initDefault
 {
     OWSPrimaryStorage *primaryStorage = [OWSPrimaryStorage sharedManager];
-    OWSMessageSender *messageSender = [TextSecureKitEnv sharedEnv].messageSender;
+    OWSMessageSender *messageSender = [SSKEnvironment sharedEnv].messageSender;
 
     return [self initWithPrimaryStorage:primaryStorage messageSender:messageSender];
 }
diff --git a/SignalServiceKit/src/Messages/OWSIdentityManager.m b/SignalServiceKit/src/Messages/OWSIdentityManager.m
index 844e06c92..24ed7ee8d 100644
--- a/SignalServiceKit/src/Messages/OWSIdentityManager.m
+++ b/SignalServiceKit/src/Messages/OWSIdentityManager.m
@@ -17,11 +17,11 @@
 #import "OWSRecipientIdentity.h"
 #import "OWSVerificationStateChangeMessage.h"
 #import "OWSVerificationStateSyncMessage.h"
+#import "SSKEnvironment.h"
 #import "TSAccountManager.h"
 #import "TSContactThread.h"
 #import "TSErrorMessage.h"
 #import "TSGroupThread.h"
-#import "TextSecureKitEnv.h"
 #import "YapDatabaseConnection+OWS.h"
 #import "YapDatabaseTransaction+OWS.h"
 #import <AxolotlKit/NSData+keyVersionByte.h>
@@ -79,7 +79,7 @@ NSString *const kNSNotificationName_IdentityStateDidChange = @"kNSNotificationNa
 - (instancetype)initDefault
 {
     OWSPrimaryStorage *primaryStorage = [OWSPrimaryStorage sharedManager];
-    OWSMessageSender *messageSender = [TextSecureKitEnv sharedEnv].messageSender;
+    OWSMessageSender *messageSender = [SSKEnvironment sharedEnv].messageSender;
 
     return [self initWithPrimaryStorage:primaryStorage messageSender:messageSender];
 }
@@ -540,9 +540,9 @@ NSString *const kNSNotificationName_IdentityStateDidChange = @"kNSNotificationNa
         [message saveWithTransaction:transaction];
     }
 
-    [[TextSecureKitEnv sharedEnv].notificationsManager notifyUserForErrorMessage:errorMessage
-                                                                          thread:contactThread
-                                                                     transaction:transaction];
+    [[SSKEnvironment sharedEnv].notificationsManager notifyUserForErrorMessage:errorMessage
+                                                                        thread:contactThread
+                                                                   transaction:transaction];
 }
 
 - (void)enqueueSyncMessageForVerificationStateForRecipientId:(NSString *)recipientId
diff --git a/SignalServiceKit/src/Messages/OWSMessageDecrypter.m b/SignalServiceKit/src/Messages/OWSMessageDecrypter.m
index 2609a4f24..813b1da5f 100644
--- a/SignalServiceKit/src/Messages/OWSMessageDecrypter.m
+++ b/SignalServiceKit/src/Messages/OWSMessageDecrypter.m
@@ -13,12 +13,12 @@
 #import "OWSPrimaryStorage+SessionStore.h"
 #import "OWSPrimaryStorage+SignedPreKeyStore.h"
 #import "OWSPrimaryStorage.h"
+#import "SSKEnvironment.h"
 #import "SignalRecipient.h"
 #import "TSAccountManager.h"
 #import "TSContactThread.h"
 #import "TSErrorMessage.h"
 #import "TSPreKeyManager.h"
-#import "TextSecureKitEnv.h"
 #import <AxolotlKit/AxolotlExceptions.h>
 #import <AxolotlKit/SessionCipher.h>
 #import <SignalServiceKit/SignalServiceKit-Swift.h>
@@ -182,8 +182,8 @@ NS_ASSUME_NONNULL_BEGIN
         [[OWSPrimaryStorage.sharedManager newDatabaseConnection]
             readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
                 TSErrorMessage *errorMessage = [TSErrorMessage corruptedMessageInUnknownThread];
-                [[TextSecureKitEnv sharedEnv].notificationsManager notifyUserForThreadlessErrorMessage:errorMessage
-                                                                                           transaction:transaction];
+                [[SSKEnvironment sharedEnv].notificationsManager notifyUserForThreadlessErrorMessage:errorMessage
+                                                                                         transaction:transaction];
             }];
     }
 
@@ -323,9 +323,9 @@ NS_ASSUME_NONNULL_BEGIN
                       transaction:(YapDatabaseReadWriteTransaction *)transaction
 {
     TSThread *contactThread = [TSContactThread getOrCreateThreadWithContactId:envelope.source transaction:transaction];
-    [[TextSecureKitEnv sharedEnv].notificationsManager notifyUserForErrorMessage:errorMessage
-                                                                          thread:contactThread
-                                                                     transaction:transaction];
+    [[SSKEnvironment sharedEnv].notificationsManager notifyUserForErrorMessage:errorMessage
+                                                                        thread:contactThread
+                                                                   transaction:transaction];
 }
 
 @end
diff --git a/SignalServiceKit/src/Messages/OWSMessageManager.m b/SignalServiceKit/src/Messages/OWSMessageManager.m
index 777cd54a4..0299d1e0c 100644
--- a/SignalServiceKit/src/Messages/OWSMessageManager.m
+++ b/SignalServiceKit/src/Messages/OWSMessageManager.m
@@ -33,6 +33,7 @@
 #import "OWSSyncGroupsMessage.h"
 #import "OWSSyncGroupsRequestMessage.h"
 #import "ProfileManagerProtocol.h"
+#import "SSKEnvironment.h"
 #import "TSAccountManager.h"
 #import "TSAttachment.h"
 #import "TSAttachmentPointer.h"
@@ -46,7 +47,6 @@
 #import "TSNetworkManager.h"
 #import "TSOutgoingMessage.h"
 #import "TSQuotedMessage.h"
-#import "TextSecureKitEnv.h"
 #import <SignalServiceKit/SignalServiceKit-Swift.h>
 #import <YapDatabase/YapDatabase.h>
 
@@ -84,10 +84,10 @@ NS_ASSUME_NONNULL_BEGIN
 {
     TSNetworkManager *networkManager = [TSNetworkManager sharedManager];
     OWSPrimaryStorage *primaryStorage = [OWSPrimaryStorage sharedManager];
-    id<ContactsManagerProtocol> contactsManager = [TextSecureKitEnv sharedEnv].contactsManager;
-    id<OWSCallMessageHandler> callMessageHandler = [TextSecureKitEnv sharedEnv].callMessageHandler;
+    id<ContactsManagerProtocol> contactsManager = [SSKEnvironment sharedEnv].contactsManager;
+    id<OWSCallMessageHandler> callMessageHandler = [SSKEnvironment sharedEnv].callMessageHandler;
     OWSIdentityManager *identityManager = [OWSIdentityManager sharedManager];
-    OWSMessageSender *messageSender = [TextSecureKitEnv sharedEnv].messageSender;
+    OWSMessageSender *messageSender = [SSKEnvironment sharedEnv].messageSender;
 
 
     return [self initWithNetworkManager:networkManager
@@ -429,7 +429,7 @@ NS_ASSUME_NONNULL_BEGIN
 
 - (id<ProfileManagerProtocol>)profileManager
 {
-    return [TextSecureKitEnv sharedEnv].profileManager;
+    return [SSKEnvironment sharedEnv].profileManager;
 }
 
 - (void)handleIncomingEnvelope:(SSKProtoEnvelope *)envelope
@@ -798,7 +798,7 @@ NS_ASSUME_NONNULL_BEGIN
         return;
     }
 
-    id<ProfileManagerProtocol> profileManager = [TextSecureKitEnv sharedEnv].profileManager;
+    id<ProfileManagerProtocol> profileManager = [SSKEnvironment sharedEnv].profileManager;
     [profileManager setProfileKeyData:profileKey forRecipientId:recipientId];
 }
 
@@ -1168,10 +1168,10 @@ NS_ASSUME_NONNULL_BEGIN
     // Update thread preview in inbox
     [thread touchWithTransaction:transaction];
 
-    [[TextSecureKitEnv sharedEnv].notificationsManager notifyUserForIncomingMessage:incomingMessage
-                                                                           inThread:thread
-                                                                    contactsManager:self.contactsManager
-                                                                        transaction:transaction];
+    [[SSKEnvironment sharedEnv].notificationsManager notifyUserForIncomingMessage:incomingMessage
+                                                                         inThread:thread
+                                                                  contactsManager:self.contactsManager
+                                                                      transaction:transaction];
 }
 
 #pragma mark - helpers
diff --git a/SignalServiceKit/src/Messages/OWSMessageReceiver.m b/SignalServiceKit/src/Messages/OWSMessageReceiver.m
index dfd6ef169..be7b84d83 100644
--- a/SignalServiceKit/src/Messages/OWSMessageReceiver.m
+++ b/SignalServiceKit/src/Messages/OWSMessageReceiver.m
@@ -13,10 +13,10 @@
 #import "OWSPrimaryStorage.h"
 #import "OWSQueues.h"
 #import "OWSStorage.h"
+#import "SSKEnvironment.h"
 #import "TSDatabaseView.h"
 #import "TSErrorMessage.h"
 #import "TSYapDatabaseObject.h"
-#import "TextSecureKitEnv.h"
 #import "Threading.h"
 #import <SignalServiceKit/SignalServiceKit-Swift.h>
 #import <YapDatabase/YapDatabaseAutoView.h>
@@ -335,8 +335,8 @@ NSString *const OWSMessageDecryptJobFinderExtensionGroup = @"OWSMessageProcessin
         [[OWSPrimaryStorage.sharedManager newDatabaseConnection]
             readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
                 TSErrorMessage *errorMessage = [TSErrorMessage corruptedMessageInUnknownThread];
-                [[TextSecureKitEnv sharedEnv].notificationsManager notifyUserForThreadlessErrorMessage:errorMessage
-                                                                                           transaction:transaction];
+                [[SSKEnvironment sharedEnv].notificationsManager notifyUserForThreadlessErrorMessage:errorMessage
+                                                                                         transaction:transaction];
             }];
 
         dispatch_async(self.serialQueue, ^{
diff --git a/SignalServiceKit/src/Messages/OWSProfileKeyMessage.m b/SignalServiceKit/src/Messages/OWSProfileKeyMessage.m
index 49a2429be..ffa90e7eb 100644
--- a/SignalServiceKit/src/Messages/OWSProfileKeyMessage.m
+++ b/SignalServiceKit/src/Messages/OWSProfileKeyMessage.m
@@ -5,7 +5,7 @@
 #import "OWSProfileKeyMessage.h"
 #import "ProfileManagerProtocol.h"
 #import "ProtoUtils.h"
-#import "TextSecureKitEnv.h"
+#import "SSKEnvironment.h"
 #import <SignalServiceKit/SignalServiceKit-Swift.h>
 
 NS_ASSUME_NONNULL_BEGIN
@@ -57,7 +57,7 @@ NS_ASSUME_NONNULL_BEGIN
     if (recipientId.length > 0) {
         // Once we've shared our profile key with a user (perhaps due to being
         // a member of a whitelisted group), make sure they're whitelisted.
-        id<ProfileManagerProtocol> profileManager = [TextSecureKitEnv sharedEnv].profileManager;
+        id<ProfileManagerProtocol> profileManager = [SSKEnvironment sharedEnv].profileManager;
         [profileManager addUserToProfileWhitelist:recipientId];
     }
 
diff --git a/SignalServiceKit/src/Messages/OWSReadReceiptManager.m b/SignalServiceKit/src/Messages/OWSReadReceiptManager.m
index 7dd24e159..59c900037 100644
--- a/SignalServiceKit/src/Messages/OWSReadReceiptManager.m
+++ b/SignalServiceKit/src/Messages/OWSReadReceiptManager.m
@@ -13,11 +13,11 @@
 #import "OWSReadReceiptsForSenderMessage.h"
 #import "OWSStorage.h"
 #import "OWSSyncConfigurationMessage.h"
+#import "SSKEnvironment.h"
 #import "TSAccountManager.h"
 #import "TSContactThread.h"
 #import "TSDatabaseView.h"
 #import "TSIncomingMessage.h"
-#import "TextSecureKitEnv.h"
 #import "Threading.h"
 #import "YapDatabaseConnection+OWS.h"
 #import <SignalServiceKit/SignalServiceKit-Swift.h>
@@ -156,7 +156,7 @@ NSString *const OWSReadReceiptManagerAreReadReceiptsEnabled = @"areReadReceiptsE
 
 - (instancetype)initDefault
 {
-    OWSMessageSender *messageSender = [TextSecureKitEnv sharedEnv].messageSender;
+    OWSMessageSender *messageSender = [SSKEnvironment sharedEnv].messageSender;
     OWSPrimaryStorage *primaryStorage = [OWSPrimaryStorage sharedManager];
 
     return [self initWithMessageSender:messageSender primaryStorage:primaryStorage];
diff --git a/SignalServiceKit/src/Network/WebSockets/TSSocketManager.m b/SignalServiceKit/src/Network/WebSockets/TSSocketManager.m
index 6cc314729..8e0585d49 100644
--- a/SignalServiceKit/src/Network/WebSockets/TSSocketManager.m
+++ b/SignalServiceKit/src/Network/WebSockets/TSSocketManager.m
@@ -16,11 +16,11 @@
 #import "OWSPrimaryStorage.h"
 #import "OWSSignalService.h"
 #import "OWSWebsocketSecurityPolicy.h"
+#import "SSKEnvironment.h"
 #import "TSAccountManager.h"
 #import "TSConstants.h"
 #import "TSErrorMessage.h"
 #import "TSRequest.h"
-#import "TextSecureKitEnv.h"
 #import "Threading.h"
 #import <SignalServiceKit/SignalServiceKit-Swift.h>
 
@@ -749,8 +749,8 @@ NSString *const kNSNotification_SocketManagerStateDidChange = @"kNSNotification_
                 [[OWSPrimaryStorage.sharedManager newDatabaseConnection] readWriteWithBlock:^(
                     YapDatabaseReadWriteTransaction *transaction) {
                     TSErrorMessage *errorMessage = [TSErrorMessage corruptedMessageInUnknownThread];
-                    [[TextSecureKitEnv sharedEnv].notificationsManager notifyUserForThreadlessErrorMessage:errorMessage
-                                                                                               transaction:transaction];
+                    [[SSKEnvironment sharedEnv].notificationsManager notifyUserForThreadlessErrorMessage:errorMessage
+                                                                                             transaction:transaction];
                 }];
             }
 
diff --git a/SignalServiceKit/src/Protocols/ProtoUtils.m b/SignalServiceKit/src/Protocols/ProtoUtils.m
index acb8ba2ac..c4ac3ea23 100644
--- a/SignalServiceKit/src/Protocols/ProtoUtils.m
+++ b/SignalServiceKit/src/Protocols/ProtoUtils.m
@@ -5,8 +5,8 @@
 #import "ProtoUtils.h"
 #import "Cryptography.h"
 #import "ProfileManagerProtocol.h"
+#import "SSKEnvironment.h"
 #import "TSThread.h"
-#import "TextSecureKitEnv.h"
 #import <SignalServiceKit/SignalServiceKit-Swift.h>
 
 NS_ASSUME_NONNULL_BEGIN
@@ -17,7 +17,7 @@ NS_ASSUME_NONNULL_BEGIN
 {
     OWSAssertDebug(thread);
 
-    id<ProfileManagerProtocol> profileManager = [TextSecureKitEnv sharedEnv].profileManager;
+    id<ProfileManagerProtocol> profileManager = [SSKEnvironment sharedEnv].profileManager;
 
     // For 1:1 threads, we want to include the profile key IFF the
     // contact is in the whitelist.
@@ -35,7 +35,7 @@ NS_ASSUME_NONNULL_BEGIN
 
 + (OWSAES256Key *)localProfileKey
 {
-    id<ProfileManagerProtocol> profileManager = [TextSecureKitEnv sharedEnv].profileManager;
+    id<ProfileManagerProtocol> profileManager = [SSKEnvironment sharedEnv].profileManager;
     return profileManager.localProfileKey;
 }
 
@@ -52,7 +52,7 @@ NS_ASSUME_NONNULL_BEGIN
         if (recipientId.length > 0) {
             // Once we've shared our profile key with a user (perhaps due to being
             // a member of a whitelisted group), make sure they're whitelisted.
-            id<ProfileManagerProtocol> profileManager = [TextSecureKitEnv sharedEnv].profileManager;
+            id<ProfileManagerProtocol> profileManager = [SSKEnvironment sharedEnv].profileManager;
             // FIXME PERF avoid this dispatch. It's going to happen for *each* recipient in a group message.
             dispatch_async(dispatch_get_main_queue(), ^{
                 [profileManager addUserToProfileWhitelist:recipientId];
@@ -81,7 +81,7 @@ NS_ASSUME_NONNULL_BEGIN
 
         // Once we've shared our profile key with a user (perhaps due to being
         // a member of a whitelisted group), make sure they're whitelisted.
-        id<ProfileManagerProtocol> profileManager = [TextSecureKitEnv sharedEnv].profileManager;
+        id<ProfileManagerProtocol> profileManager = [SSKEnvironment sharedEnv].profileManager;
         // FIXME PERF avoid this dispatch. It's going to happen for *each* recipient in a group message.
         dispatch_async(dispatch_get_main_queue(), ^{
             [profileManager addUserToProfileWhitelist:recipientId];
diff --git a/SignalServiceKit/src/TextSecureKitEnv.h b/SignalServiceKit/src/SSKEnvironment.h
similarity index 88%
rename from SignalServiceKit/src/TextSecureKitEnv.h
rename to SignalServiceKit/src/SSKEnvironment.h
index 11642e215..2f02c4064 100644
--- a/SignalServiceKit/src/TextSecureKitEnv.h
+++ b/SignalServiceKit/src/SSKEnvironment.h
@@ -1,16 +1,18 @@
 //
-//  Copyright (c) 2017 Open Whisper Systems. All rights reserved.
+//  Copyright (c) 2018 Open Whisper Systems. All rights reserved.
 //
 
 NS_ASSUME_NONNULL_BEGIN
 
 @protocol ContactsManagerProtocol;
+
 @class OWSMessageSender;
+
 @protocol NotificationsProtocol;
 @protocol OWSCallMessageHandler;
 @protocol ProfileManagerProtocol;
 
-@interface TextSecureKitEnv : NSObject
+@interface SSKEnvironment : NSObject
 
 - (instancetype)initWithCallMessageHandler:(id<OWSCallMessageHandler>)callMessageHandler
                            contactsManager:(id<ContactsManagerProtocol>)contactsManager
@@ -21,7 +23,7 @@ NS_ASSUME_NONNULL_BEGIN
 - (instancetype)init NS_UNAVAILABLE;
 
 + (instancetype)sharedEnv;
-+ (void)setSharedEnv:(TextSecureKitEnv *)env;
++ (void)setSharedEnv:(SSKEnvironment *)env;
 
 @property (nonatomic, readonly) id<OWSCallMessageHandler> callMessageHandler;
 @property (nonatomic, readonly) id<ContactsManagerProtocol> contactsManager;
diff --git a/SignalServiceKit/src/TextSecureKitEnv.m b/SignalServiceKit/src/SSKEnvironment.m
similarity index 79%
rename from SignalServiceKit/src/TextSecureKitEnv.m
rename to SignalServiceKit/src/SSKEnvironment.m
index 264d16073..50eb92bb5 100644
--- a/SignalServiceKit/src/TextSecureKitEnv.m
+++ b/SignalServiceKit/src/SSKEnvironment.m
@@ -2,14 +2,14 @@
 //  Copyright (c) 2018 Open Whisper Systems. All rights reserved.
 //
 
-#import "TextSecureKitEnv.h"
+#import "SSKEnvironment.h"
 #import "AppContext.h"
 
 NS_ASSUME_NONNULL_BEGIN
 
-static TextSecureKitEnv *sharedTextSecureKitEnv;
+static SSKEnvironment *sharedSSKEnvironment;
 
-@interface TextSecureKitEnv ()
+@interface SSKEnvironment ()
 
 @property (nonatomic) id<OWSCallMessageHandler> callMessageHandler;
 @property (nonatomic) id<ContactsManagerProtocol> contactsManager;
@@ -21,7 +21,7 @@ static TextSecureKitEnv *sharedTextSecureKitEnv;
 
 #pragma mark -
 
-@implementation TextSecureKitEnv
+@implementation SSKEnvironment
 
 - (instancetype)initWithCallMessageHandler:(id<OWSCallMessageHandler>)callMessageHandler
                            contactsManager:(id<ContactsManagerProtocol>)contactsManager
@@ -51,17 +51,17 @@ static TextSecureKitEnv *sharedTextSecureKitEnv;
 
 + (instancetype)sharedEnv
 {
-    OWSAssertDebug(sharedTextSecureKitEnv);
+    OWSAssertDebug(sharedSSKEnvironment);
 
-    return sharedTextSecureKitEnv;
+    return sharedSSKEnvironment;
 }
 
-+ (void)setSharedEnv:(TextSecureKitEnv *)env
++ (void)setSharedEnv:(SSKEnvironment *)env
 {
     OWSAssertDebug(env);
-    OWSAssertDebug(!sharedTextSecureKitEnv || CurrentAppContext().isRunningTests);
+    OWSAssertDebug(!sharedSSKEnvironment || CurrentAppContext().isRunningTests);
 
-    sharedTextSecureKitEnv = env;
+    sharedSSKEnvironment = env;
 }
 
 @end
diff --git a/SignalServiceKit/src/Storage/FullTextSearchFinder.swift b/SignalServiceKit/src/Storage/FullTextSearchFinder.swift
index 5e8889f8e..f36194c9b 100644
--- a/SignalServiceKit/src/Storage/FullTextSearchFinder.swift
+++ b/SignalServiceKit/src/Storage/FullTextSearchFinder.swift
@@ -154,7 +154,7 @@ public class FullTextSearchFinder: NSObject {
     // MARK: - Index Building
 
     private class var contactsManager: ContactsManagerProtocol {
-        return TextSecureKitEnv.shared().contactsManager
+        return SSKEnvironment.shared().contactsManager
     }
 
     private static let groupThreadIndexer: SearchIndexer<TSGroupThread> = SearchIndexer { (groupThread: TSGroupThread, transaction: YapDatabaseReadTransaction) in
diff --git a/SignalServiceKit/tests/Storage/TSStorageIdentityKeyStoreTests.m b/SignalServiceKit/tests/Storage/TSStorageIdentityKeyStoreTests.m
index 14365caa9..29bc5ae2d 100644
--- a/SignalServiceKit/tests/Storage/TSStorageIdentityKeyStoreTests.m
+++ b/SignalServiceKit/tests/Storage/TSStorageIdentityKeyStoreTests.m
@@ -6,8 +6,8 @@
 #import "OWSPrimaryStorage.h"
 #import "OWSRecipientIdentity.h"
 #import "OWSUnitTestEnvironment.h"
+#import "SSKEnvironment.h"
 #import "SecurityUtils.h"
-#import "TextSecureKitEnv.h"
 #import <Curve25519Kit/Curve25519.h>
 #import <XCTest/XCTest.h>
 
diff --git a/SignalServiceKit/tests/TestSupport/Fakes/OWSUnitTestEnvironment.h b/SignalServiceKit/tests/TestSupport/Fakes/OWSUnitTestEnvironment.h
index 67b49148a..2feeb71aa 100644
--- a/SignalServiceKit/tests/TestSupport/Fakes/OWSUnitTestEnvironment.h
+++ b/SignalServiceKit/tests/TestSupport/Fakes/OWSUnitTestEnvironment.h
@@ -1,12 +1,12 @@
 //
-//  Copyright (c) 2017 Open Whisper Systems. All rights reserved.
+//  Copyright (c) 2018 Open Whisper Systems. All rights reserved.
 //
 
-#import "TextSecureKitEnv.h"
+#import "SSKEnvironment.h"
 
 NS_ASSUME_NONNULL_BEGIN
 
-@interface OWSUnitTestEnvironment : TextSecureKitEnv
+@interface OWSUnitTestEnvironment : SSKEnvironment
 
 + (void)ensureSetup;
 - (instancetype)initDefault;