maybe it should not check if it's a `String`, maybe an check like `dictionary == null || !dictionary.length` would be better (would allow Arrays as dictionary)