#3076: copied reintegration branch to keep splitting code (which will be removed in the reintegration branch)