Totally rewrote dissociator using [NSString enumerateSubstringsInRange]