separate code using move semantics
improve .travis.yml