@21x9: Using dependency injection here was a workaround to avoid some ugliness in the testing. We did this initially, but you're right that it feels off. We discussed further and decided that while the pattern was sound, using an instance of `NSUserDefaults` seemed weird. We talked about using categories to conform `NSUserDefaults` and `LUKeychainAccess` to a common protocol, and then typing this property to that protocol instead. The benefit there (aside from testing) is that we could swap out the user defaults with the keychain really easily.