refactor
add semantic api
weixin api