better implementation
gitignore added