Merge in all the new changes from the experimental branch