add some comments
update documentation