updated data handling and most gui classes to use variable categories