rolled branch back to match upstream master