Refactor metrics to make subclasses simpler