refactor, increase test coverage to 98%