add documentation file and missing comments.
update gitignore