package structure for metrics
move abstract MetricDescriptor to separate class
Merge remote-tracking branch 'origin/master'