initial commit
initial implementation; untested
test suite setup, enabled travis-ci