pulling in changes from upstream

bring in the changes