First pass of refactoring Metric