This was an attempt to externalize the code related to BIDI, in order to write a dedicated class which overrides some functions. As the code related to bidi is minimal, I kept everything in the same class. Indeed this code was in _update() in the first place. I can put it back.