~ refactor
~ refactor
~ refactor
Minor: Extract LoggingErrorReporter
~refactor
~refactor