first implementation, with simple tests for now
more tests and CI with travis