add dep
add api
gitignore
add test related stuff