merge from upstream

:sunglasses: