factored out private methods to their own modules for better code coverage.