Add tests, travisCI, and coverage