update

basically finish all the code function