merge from the upstream changes