improved error message
tests
add .gitignore