Written more tests

Signed-off-by: Frank Mayer <frank@frankmayer.net>
Refactoring

Signed-off-by: Frank Mayer <frank@frankmayer.net>
Generated docs

Signed-off-by: Frank Mayer <frank@frankmayer.net>