This can be, by the time we call this we have ran serialization with the ensureDictionary param to YES.  So we know item was a valid dictionary.  The core functions are private to us, so we can look at making these take a NSDictionary as well later.