refactor API for metric interfaces to remove access to the Value of the metric. This allows for metric implementations to delegate to other components, maybe out of process, the actual computation of the metric.