merge 0.7.x to 0.9.x