refactor both metric with Rankable