add travisci config, split code to own tools napespaces, add more tests