finally merged upstream master