merging from upstream - stage 3