add .travis.yml
big refactor