bringing project up to date from upstream

Merging upstream changes.