refactored classes in gui package