Implement Metrics

...and refactor Records to be mixin-based