Updated to reflect new machine.specifications version and refactored to be a little more sane in the way it parses the results from machine.specifications