merged upstream changes