coverage + refactoring