refactor StatusMessageWriter into a service, create an alternate logging-only implementation