tests and code refactoring
Update .gitignore