merge 0.8.x into 0.9.x