update implementation
+ .gitignore