Adding metric_fu and using its reports as the basis for a lot of refactoring