v3 fork merge to trunk