add new moving function and demo