It's a quite complex class and the way it works isn't properly explained in the documentation.
This task has been migrated to GitLab.