backport latest changes
import changes