push before pull
merge
add migrate function