merging in upstream changes.