initial movement implementation