add source files and dependency
modify gitignore