more docs and simplify