docs + tests