restrict namespace
add context manager method
add some tests
add an example