added tests and travis ci integration