merges changes from upstream