diff --git a/docs/methods_and_properties.md b/docs/methods_and_properties.md
index 9a4b662d29a0dcabc68d4b745c55a047f5a6415b..0be26b467058b4c6ae87b3397ac02a1b7ac0c719 100644
--- a/docs/methods_and_properties.md
+++ b/docs/methods_and_properties.md
@@ -4,37 +4,204 @@ Dios Methods and Properies
 Methods
 --------
 
-- `copy()`
-- `copy_empty()`
-- `all()`
-- `any()`
-- `squeeze()`
-- `to_df()`
-- `to_string()`
-- `apply()`
-- `astype()`
-- `isin()`
-- `isna()`
-- `notna()`
-- `dropna()`
-- `memory_usage()`
-- `index_of()`
-- `in`
-- `is`
-- `len(Dios)`
-
-TODO: make brief description table
+Brief
+ - `copy(deep=True)` : Return a copy. See also [pandas.DataFrame.copy](
+    https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.copy.html) 
+ - `copy_empty()` : Return a new DictOfSeries object, with same properties than the original. 
+ - `all(axis=0)` : Return whether all elements are True, potentially over an axis. See also [pandas.DataFrame.all](
+    https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.all.html)
+ - `any(axis=0)` : Return whether any element is True, potentially over an axis. See also [pandas.DataFrame.any](
+    https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.any.html)
+ - `squeeze(axis=None)` : Squeeze a 1-dimensional axis objects into scalars. Eg. a 1-column Dios is squeezes to the 
+    underling Series. If `axis=None` it is also tried, to squeeze the possibly returned Series, from the (outer) 
+    Dios-squeeze.
+    See also [pandas.DataFrame.squeeze](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.squeeze.html)
+ - `to_df()` : Transform the Dios to a pandas.DataFrame
+ - `to_string(kwargs)` : Return a string representation of the Dios.
+ - `apply(func, args=(), **kwds)` : apply the given function to every column in the dios eg. 
+ - `astype()` : Cast the data to the given data type.
+ - `isin()` : return a boolean dios, that indicates if the corresponding value is in the given array-like
+ - `isna()` : Return a bolean array that is `True` if the value is a Nan-value
+ - `notna()` : inverse of `isnan()`
+ - `dropna()` : drop all Nan-values
+ - `index_of(method='union)`: Return a single(!) Index that is constructed from all the indexes of the columns. 
+ - `in`
+ - `is`
+ - `len(Dios)` : return the number of columns the dios has.
 
+ `copy_empty(columns=True)`
+ --------------------------
+ Return a new DictOfSeries object, with same properties than the original. 
+ If `columns=True`, the copy will have the same, but empty columns like the original.  
+ 
+**Parameter**:
+ - **columns : bool, default True**
 
+    Function to apply to each column or row.
+
+**Examples**
+```
+>>> d
+    a |    b |     c |     d | 
+===== | ==== | ===== | ===== | 
+0   0 | 2  5 | 4   7 | 6   0 | 
+1   7 | 3  6 | 5  17 | 7   1 | 
+2  14 | 4  7 | 6  27 | 8   2 | 
+3  21 | 5  8 | 7  37 | 9   3 | 
+4  28 | 6  9 | 8  47 | 10  4 | 
+
+>>> d.copy_empty()
+Empty DictOfSeries
+Columns: ['a', 'b', 'c', 'd']
+
+>>> d.copy_empty(columns=False)
+Empty DictOfSeries
+Columns: []
+```
+
+
+`to_df()`
+---------
+Transform the Dios to a pandas.DataFrame. Missing common indices are filled with NaN's.
+
+**Examples**
+``` 
+>>> d
+    a |    b |     c |     d | 
+===== | ==== | ===== | ===== | 
+0   0 | 2  5 | 4   7 | 6   0 | 
+1   7 | 3  6 | 5  17 | 7   1 | 
+2  14 | 4  7 | 6  27 | 8   2 | 
+3  21 | 5  8 | 7  37 | 9   3 | 
+4  28 | 6  9 | 8  47 | 10  4 | 
+
+>>> d.to_df()
+columns     a    b     c    d
+0         0.0  NaN   NaN  NaN
+1         7.0  NaN   NaN  NaN
+2        14.0  5.0   NaN  NaN
+3        21.0  6.0   NaN  NaN
+4        28.0  7.0   7.0  NaN
+5         NaN  8.0  17.0  NaN
+6         NaN  9.0  27.0  0.0
+7         NaN  NaN  37.0  1.0
+8         NaN  NaN  47.0  2.0
+9         NaN  NaN   NaN  3.0
+10        NaN  NaN   NaN  4.0
+```
+   
+dios.DictOfSeries.apply
+-------------------------------------------------
+`apply(func, axis=0, raw=False, args=(), **kwds)` 
+
+Apply the given function to every column in the dios. This is a very mighty tool to apply functions that 
+are defined on pandas.Series to multiple columns. 
+
+**Parameters:**
+ - **func : function**
+
+    Function to apply to each column or row.
+
+ - **axis : {0 or ‘index’, 1 or ‘columns’}, default 0**
+
+    Axis along which the function is applied:
+    - 0 or ‘index’: apply function to each column.
+    - ~~1 or ‘columns’: apply function to each row~~. **not implemented**
+
+- **raw : bool, default False**
+
+    Determines if row or column is passed as a Series or ndarray object:
+    - `False` : passes each row or column as a Series to the function.
+    - `True` : the passed function will receive ndarray objects instead. If you are just applying a NumPy reduction function this will achieve much better performance.
+
+- **args : tuple**
+
+    Positional arguments to pass to func in addition to the array/series.
+    
+- ****kwds**
+
+    Additional keyword arguments to pass as keywords arguments to func.
+
+**Returns:  Series or DataFrame**
+
+ - Result of applying func along the given axis of the DataFrame.
+
+
+**See also**
+
+[pandas.DataFrame.apply](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.apply.html)
+
+   
+**Examples**
+   
+``` 
+>>> d
+    a |    b |     c |     d | 
+===== | ==== | ===== | ===== | 
+0   0 | 2  5 | 4   7 | 6   0 | 
+1   7 | 3  6 | 5  17 | 7   1 | 
+2  14 | 4  7 | 6  27 | 8   2 | 
+3  21 | 5  8 | 7  37 | 9   3 | 
+4  28 | 6  9 | 8  47 | 10  4 | 
+
+>>> d.apply(max)
+columns
+a    28
+b     9
+c    47
+d     4
+dtype: int64
+
+>>> d.apply(pd.Series.count)
+columns
+a    5
+b    5
+c    5
+d    5
+dtype: int64
+
+>>> d.apply(pd.Series.value_counts, normalize=True)
+      a |      b |       c |      d | 
+======= | ====== | ======= | ====== | 
+7   0.2 | 7  0.2 | 7   0.2 | 4  0.2 | 
+14  0.2 | 6  0.2 | 37  0.2 | 3  0.2 | 
+21  0.2 | 5  0.2 | 47  0.2 | 2  0.2 | 
+28  0.2 | 9  0.2 | 27  0.2 | 1  0.2 | 
+0   0.2 | 8  0.2 | 17  0.2 | 0  0.2 | 
+
+>>> d.apply(lambda s : 'high' if max(s) > 10 else 'low')
+columns
+a    high
+b     low
+c    high
+d     low
+dtype: object
+
+>>> d.apply(lambda s : ('high', max(s)) if min(s) > (max(s)//2) else ('low',max(s)))
+     a |       b |      c |      d | 
+====== | ======= | ====== | ====== | 
+0  low | 0  high | 0  low | 0  low | 
+1   28 | 1     9 | 1   47 | 1    4 | 
+``` 
+   
+   
+dios.DictOfSeries.index_of
+---------------------------
+`index_of(method='union)`
+
+: return a single(!) Index that is constructed from all the indexes of the columns. 
+   
+   
+   
+   
+   
 Properties
 ----------
-- columns
-- indexes (series of indexes of all series's)
-- lengths (series of lengths of all series's)
-- values (not fully pd-like - np.array of series's values)
-- dtypes
-- itype  (see section Itype)
-- empty 
-- size
-
-TODO: make brief description table
+- `columns` : Column index 
+- `indexes` : Series of indexes of columns
+- `lengths` : Series of lengths of columns
+- `values` :  A array of length of the columns, with arrays of values, as sub-arrays
+- `dtypes` : Series of dtypes of columns
+- `itype` : The index type the Dios accept
+- `empty` : True if the dios holds no data. Nevertheless the dios can have empty columns.
+