add cache
update .gitignore
update