refactor some more, add missing method headers
fix travis build, refactor erlang style, add client