add unit tests and travis config