handle NSDictionary and NSMutableDictionary the same way