The two scenarios are slightly different and it is probably cleaner to keep them as is instead of a common initialize metric from list function. The function would need to get all metrics and all the parameters necessary to init them to just init versus init inline when the parameters are already there