merge 3.0.0 changes into experimental