update .gitignore and add source files