Adding a struct for getting Metric names
We now have a more generic way of unmarhsaling our json
Reorganizing things a bit
Changing everything to use the interface
Adding documentation