merge upstream modifications