transfer code, not complete
add listen when have new version