   end
 
   defp move_abs(%{x: x, y: y, z: z, speed_x: sx, speed_y: sy, speed_z: sz} = k) do
-    SysCalls.log("Moving to (#{x},#{y},#{z}) @ speed (#{sx},#{sy},#{sz})")
+    SysCalls.log(
+      "Moving from (#{cx()},#{cy()},#{cz()}) to (#{x},#{y},#{z}). speed (#{sx},#{
+        sy
+      },#{sz})"
+    )
+
     SysCalls.move_absolute(x, y, z, sx, sy, sz)
     k
   end
 
   defp move_abs(%{
-    "speed_x" => sx,
-    "speed_y" => sy,
-    "speed_z" => sz,
-    "x" => x,
-    "y" => y,
-    "z" => z }) do
-    move_abs(%{ speed_x: sx, speed_y: sy, speed_z: sz, x: x, y: y, z: z })
-  end
-
-  def x, do: SysCalls.get_current_x()
-  def y, do: SysCalls.get_current_y()
-  def z, do: SysCalls.get_current_z()
+         "speed_x" => sx,
+         "speed_y" => sy,
+         "speed_z" => sz,
+         "x" => x,
+         "y" => y,
+         "z" => z
+       }) do
+    move_abs(%{speed_x: sx, speed_y: sy, speed_z: sz, x: x, y: y, z: z})
+  end
+
+  def cx, do: SysCalls.get_current_x()
+  def cy, do: SysCalls.get_current_y()
+  def cz, do: SysCalls.get_current_z()
 end

  def do_perform_movement(%{"safe_z" => false} = n), do: move_abs(n)

  def retract_z(needs) do
    %{x: x(), y: y(), z: @safe_height} |> Map.merge(needs) |> move_abs()
  end

  def move_xy(needs) do
    %{z: z()} |> Map.merge(needs) |> move_abs()
  end

  def extend_z(needs) do
    %{x: x(), y: y()} |> Map.merge(needs) |> move_abs()
  end

  def calculate_movement_needs(body) do

         args: %{label: "current_location"},
         kind: :special_value
       }) do
    get_coord(%{x: cx(), y: cy(), z: cz()}, axis)
  end

  defp to_number(axis, %{x: _, y: _, z: _} = coord) do
