refactor big old metric method