Upstream

Merging, stuff still works mostly.