brought in latest changes from main master