add move function and optimize a little bit , 2014-7-26