refactor/split namespaces.
refactor options handling.
add tests.
upgrade dependencies.
add badges.
update README.md