Implement NSUserDefaults

This init block is getting really big. Factor out the data parsing into a separate method that is called from init instead.