added new class for parsing the hand diagnostics
using boost variant and apply visitor to elegantly parse diagnostics