Merge 2.3.0 changes

Before release, we need to merge the 2.3.0 changes into 3.0.0. I think this should be done using "cherry-pick" to just merge the commits we need.