Merge upstream2 (rebase of Merge upstream1)

I hope this is what you asked. please apologize, if not