add .gitignore
update codes
add test file