add new tests
A lot of changes
updated .gitignore