make table widget work. change state to hold a QVariant of a kind instead of a string