Refactor, huge test coverage, coveralls support