initialize
move
update