Splitting out metrics, relays and logging for better separation of concern and testing.