merge upstream commits