add comments; update doc;