add unit-test & .travis.yml for CI