   # and then run as lambas (anonymous callbacks) either in the init function or the loop function.
   defmacro start(do: body) do
     quote do
-      GenServer.call(Blockytalky.UserCode, {:push_fun, :init, fn -> unquote(body) end})
+      GenServer.call(Blockytalky.UserState, {:push_fun, :init, fn -> unquote(body) end})
     end
   end
   defmacro repeatedly(do: body) do
     quote do
-      GenServer.call(Blockytalky.UserCode, {:push_fun, :loop, fn -> unquote(body) end})
+      GenServer.call(Blockytalky.UserState, {:push_fun, :loop, fn -> unquote(body) end})
     end
   end
   defmacro in_time(seconds, do: body) do

      :!= -> quote do fn x,y -> x != y end end
    end
    quote do
      GenServer.call(Blockytalky.UserCode, {:push_fun, :loop, fn ->
        when_sensor_value_compare(unquote(port_id),
          unquote(compare),
          unquote(value), #could be a constant or a var/var history [{iteration,value}...]

  end
  defmacro when_sensor({:not_in, _m, [port_id, range={:.., _m2, [_left,_right]}]}, do: body) do
    quote do
      GenServer.call(Blockytalky.UserState, {:push_fun, :loop, fn ->
        when_sensor_value_range(unquote(port_id),
          unquote(range), #could be a constant or a var
          fn -> unquote(body) end,
