added tagging inteface StatType and restricted generic type of Stat to be Enum which implements StatType