integrating upstream changes