merge upstream changes in