fix bug
add ignore files
add tests