Refactor 'Fetcher' interface
Add .travis.yml