better package structure
gitignore update