     end
   end
 
-  defp cast_mc([], _, _, _, _cb) do # end of search, :unknown_method
-    # Just do nothing here, will backtrack and do the right thing.
+  defp cast_mc([], _, _, _, cb) do # end of search, :unknown_method
     Logger.debug("No more Method Callers to call")
+    cb.({:error, :unknown_method})
     :nok
   end
 

    cast(h, method, params, context, fn
      # Keep searching for it
      {:error, :unknown_method} ->
        Logger.debug("Keep looking MC")
        cast_mc(t, method, params, context, cb)
      # done, callback with whatever.
      other ->

              Logger.debug("Calling without context #{inspect f}")
              f.(params)
            end
            Logger.debug("Method #{method} caller function #{inspect f} -> #{inspect v}.")
            case v do
              {:error, e} ->
                cb.({:error, e })
              {:ok, v} ->
                cb.({:ok, v })
              v ->
