     Enum.map(changeset_list, &Ecto.Changeset.apply_changes/1)
   end
 
-  @spec request_server_resources(server_id) :: {:ok, Resources.t} | {:error, reason :: term}
+  @spec request_server_resources(module, server_id) :: {:ok, Resources.t} | {:error, reason :: term}
   docp """
   Requests the amount of in-game hardware related to the `server_id` server
   """
-  defp request_server_resources(server_id) do
+  defp request_server_resources(broker, server_id) do
     with \
       params = %{server_id: server_id},
-      {_, {:ok, return}} <- Broker.call("server:hardware:resources:get", params)
+      {_, {:ok, return}} <- broker.call("server:hardware:resources:get", params)
     do
       Resources.from_server_resources(return)
     end
   end
 
-  @spec request_server_processes(server_id) :: {:ok, [ProcessModel.t]} | {:error, reason :: term}
+  @spec request_server_processes(module, server_id) :: {:ok, [ProcessModel.t]} | {:error, reason :: term}
   docp """
   Requests the list of in-game processes running on this server
 
   Does so by querying the Server service, receiving the list of process id's
   that the server has and then fetching them from database
   """
-  defp request_server_processes(server_id) do
+  defp request_server_processes(broker, server_id) do
     with \
       params = %{server_id: server_id},
-      {_, {:ok, process_list}} <- Broker.call("server:processes:get", params)
+      {_, {:ok, process_list}} <- broker.call("server:processes:get", params)
     do
       processes =
         ProcessModel

    end
  end

  @spec notify(atom, ProcessModel.t) :: no_return
  defp notify(:complete, _process) do
    # TODO
    :ok
  end

  @doc false
  def init(server_id) do
    with \
      {:ok, resources} <- request_server_resources(server_id),
      {:ok, process_list} <- request_server_processes(server_id)
    do
      processes =
        process_list


  require Logger

  alias HELM.Process.Repo
  alias Helix.Process.Model.Process, as: ProcessModel
  alias Helix.Process.Model.Process.Resources
  alias Helix.Process.Model.Process.SoftwareType

  import HELL.MacroHelpers

  defstruct [:server_id, :processes, :resources, :timer, :broker]

  @type server_id :: String.t
  @type timer :: {DateTime.t, tref :: reference} | nil
