This reverts commit 37049ee78c. It's not ready to be used, contains some fundamental errors. See bug#33740.
37049ee78c