add specific gitignore
fix unit test
fix #17
fix #36
fix unit test