Initial release

Reviewed-by: Jiri Kuncar <jiri.kuncar@gmail.com>
refactoring, tests and documentation

Signed-off-by: Jiri Kuncar <jiri.kuncar@gmail.com>