refactor, add coveralls, lint