     {:ok, %{bus: bus, adapter_manager: adapter_manager, devices: [], adapters: [], bluez_manager: bluez_manager, module: module}}
   end
 
+  @doc false
   def handle_call(:get_adapters, _, state) do
     {:reply, state[:adapters], state}
   end
 
+  @doc false
   def handle_call(:get_devices, _, state) do
     {:reply, state[:devices], state}
   end
 
+  @doc false
   def handle_info({:dbus_signal, _}, state) do
     GenServer.cast(state[:module], :get_adapters)
     {:noreply, state}
   end
 
+  @doc false
   def handle_cast(:get_adapters, state) do
     adapters = :dbus_proxy.children(state[:adapter_manager])
     |> Stream.map(fn (adapter) -> adapter |> String.split("/") |> Enum.at(-1) end)

    GenServer.start_link(__MODULE__, [module, opts], name: module)
  end

  def start_discovery(pid) do
    GenServer.cast(pid, :start_discovery)
  end

  def init([module, opts]) do
    {:ok, bus} = :dbus_bus_connection.connect(@dbus_type)
    {:ok, adapter_manager} = :dbus_proxy.start_link(bus, @dbus_name, @dbus_bluez_path)


  #path: "/", args: {"/org/bluez/hci1/dev_C0_CB_38_EB_74_13", %{"org.bluez.Device1" => %{"Adapter" => "/org/bluez/hci1", "Address" => "C0:CB:38:EB:74:13", "Alias" => "ubuntu-0", "Blocked" => false, "Class" => 7078144, "Connected" => false, "Icon" => "computer", "LegacyPairing" => false, "Name" => "ubuntu-0", "Paired" => false, "RSSI" => -71, "Trusted" => false, "TxPower" => 0, "UUIDs" => ["0000112d-0000-1000-8000-00805f9b34fb", "00001112-0000-1000-8000-00805f9b34fb", "0000111f-0000-1000-8000-00805f9b34fb", "0000111e-0000-1000-8000-00805f9b34fb", "0000110c-0000-1000-8000-00805f9b34fb", "0000110e-0000-1000-8000-00805f9b34fb", "0000110a-0000-1000-8000-00805f9b34fb", "0000110b-0000-1000-8000-00805f9b34fb"]}, "org.freedesktop.DBus.Introspectable" => %{}, "org.freedesktop.DBus.Properties" => %{}}}

  @doc false
  def handle_cast(:start_discovery, state) do
    #TODO: ???get list of devices now and call the device_found callback before leaving this function
    add_interface = fn(sender, "org.freedesktop.DBus.ObjectManager", "InterfacesAdded", path, args, pid) ->
