Implement NSUserDefaults

I lied about this (and misunderstood how it was being used). These do need to be public. My bad, sorry about that.