merged latest upstream changes