     @moduledoc "Struct for a HCI event"
     @type t :: %__MODULE__{
       event: atom,
-      op_code: atom,
       parameter: binary
     }
-    defstruct [event: nil, op_code: nil, parameter: ""]
+    defstruct [event: nil, parameter: ""]
   end
-  
+
   @spec start_link() :: {:ok, pid}
   def start_link() do
     GenServer.start_link(__MODULE__, [], [name: __MODULE__])


  # Constants for HCI commands etc
  @hci_command_package_type 1

  @type hci_event_code_t :: :hci_async_event | :hci_command_complete_event |
    {:hci_unknown_event, pos_integer}

    <<opcode :: unsigned-integer-size(16)>> = opcode_bin
    package = <<
      @hci_command_package_type  :: unsigned-integer-size(8),
      opcode :: unsigned-integer-size(16)-little,
      byte_size(params) :: unsigned-integer-size(8)-little,
      params :: binary>>
    Logger.debug "Package is: #{inspect package}"
    package
  end

  def interprete_event(<<@hci_event_package_type :: unsigned-integer-size(8),
      event :: unsigned-integer-size(8),
      len :: unsigned-integer-size(8),
      rest :: binary>>) when len == byte_size(rest),
    do:  %Event{event: event_code(event), parameter: rest}

  @doc """
  Partial mapping of event code to their atom counterpart
  """
