Merging upstream

Merging new changes from upstream