Update to latest upstream version

Updating to the latest upstream. Will require lots of changes again.