[tests] add tests and small API changes
[docs] add features