add tests + docs