 
   """
   @spec put(t(val), new_val) :: t(val | new_val) when val: value, new_val: value
-  def put(%MapSet{map: map} = map_set, value) do
-    %{map_set | map: Map.put(map, value, true)}
+  def put(%MapSet{data: map} = map_set, value) do
+    %{map_set | data: Map.put(map, value, [])}
   end
 
   @doc """


  """
  @spec subset?(t, t) :: boolean
  def subset?(%MapSet{map: map1}, %MapSet{map: map2}) do
    if map_size(map1) <= map_size(map2) do
      map1
      |> Map.keys


  """
  @spec disjoint?(t, t) :: boolean
  def disjoint?(%MapSet{data: map1}, %MapSet{data: map2}) do
    {map1, map2} = order_by_size(map1, map2)

    map1
