Updated protobuf outputs to be compatible with protoc 3.13, and C++ with C++14.
diff --git a/Classes/GTXImageRGBAData+GTXOOPAdditions.h b/Classes/GTXImageRGBAData+GTXOOPAdditions.h
index 6d96332..e18cf5c 100644
--- a/Classes/GTXImageRGBAData+GTXOOPAdditions.h
+++ b/Classes/GTXImageRGBAData+GTXOOPAdditions.h
@@ -30,7 +30,7 @@
 @return a a shallow copy of this instrance as std::unique_ptr to gtx::Image. @note that
 gtx::Image valid only until this instance is in scope.
 */
-- (std::unique_ptr<gtx::Image>)gtxImage NS_RETURNS_INNER_POINTER;
+- (std::unique_ptr<gtx::Image>)gtxImage;
 
 @end
 
diff --git a/Classes/GTXToolKit.mm b/Classes/GTXToolKit.mm
index 9dc61ce..c7de30f 100644
--- a/Classes/GTXToolKit.mm
+++ b/Classes/GTXToolKit.mm
@@ -102,7 +102,7 @@
 - (void)registerOOPCheck:(std::unique_ptr<gtx::Check> &)check {
   NSString *name = [NSString gtx_stringFromSTDString:check->name()];
   _outOfProcessToolkit->RegisterCheck(check);
-  __weak typeof(self) weakSelf = self;
+  __weak __typeof(self) weakSelf = self;
   id<GTXChecking> wrappedCheck = [GTXToolKit
       checkWithName:name
               block:^BOOL(id _Nonnull element, GTXErrorRefType errorOrNil) {
diff --git a/OOPClasses/Protos/gtx.pb.cc b/OOPClasses/Protos/gtx.pb.cc
index a94fc6f..460036d 100644
--- a/OOPClasses/Protos/gtx.pb.cc
+++ b/OOPClasses/Protos/gtx.pb.cc
@@ -51,6 +51,7 @@
     new (ptr) ::gtxilib::oopclasses::protos::ElementType();
     ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
   }
+  ::gtxilib::oopclasses::protos::ElementType::InitAsDefaultInstance();
 }
 
 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ElementType_gtx_2eproto =
@@ -64,6 +65,7 @@
     new (ptr) ::gtxilib::oopclasses::protos::Point();
     ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
   }
+  ::gtxilib::oopclasses::protos::Point::InitAsDefaultInstance();
 }
 
 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Point_gtx_2eproto =
@@ -77,6 +79,7 @@
     new (ptr) ::gtxilib::oopclasses::protos::Rect();
     ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
   }
+  ::gtxilib::oopclasses::protos::Rect::InitAsDefaultInstance();
 }
 
 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_Rect_gtx_2eproto =
@@ -92,6 +95,7 @@
     new (ptr) ::gtxilib::oopclasses::protos::Size();
     ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
   }
+  ::gtxilib::oopclasses::protos::Size::InitAsDefaultInstance();
 }
 
 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Size_gtx_2eproto =
@@ -105,6 +109,7 @@
     new (ptr) ::gtxilib::oopclasses::protos::UIElement();
     ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
   }
+  ::gtxilib::oopclasses::protos::UIElement::InitAsDefaultInstance();
 }
 
 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_UIElement_gtx_2eproto =
@@ -116,39 +121,33 @@
 static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_gtx_2eproto = nullptr;
 
 const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_gtx_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
-  PROTOBUF_FIELD_OFFSET(::gtxilib::oopclasses::protos::Point, _has_bits_),
+  ~0u,  // no _has_bits_
   PROTOBUF_FIELD_OFFSET(::gtxilib::oopclasses::protos::Point, _internal_metadata_),
   ~0u,  // no _extensions_
   ~0u,  // no _oneof_case_
   ~0u,  // no _weak_field_map_
   PROTOBUF_FIELD_OFFSET(::gtxilib::oopclasses::protos::Point, x_),
   PROTOBUF_FIELD_OFFSET(::gtxilib::oopclasses::protos::Point, y_),
-  0,
-  1,
-  PROTOBUF_FIELD_OFFSET(::gtxilib::oopclasses::protos::Size, _has_bits_),
+  ~0u,  // no _has_bits_
   PROTOBUF_FIELD_OFFSET(::gtxilib::oopclasses::protos::Size, _internal_metadata_),
   ~0u,  // no _extensions_
   ~0u,  // no _oneof_case_
   ~0u,  // no _weak_field_map_
   PROTOBUF_FIELD_OFFSET(::gtxilib::oopclasses::protos::Size, width_),
   PROTOBUF_FIELD_OFFSET(::gtxilib::oopclasses::protos::Size, height_),
-  0,
-  1,
-  PROTOBUF_FIELD_OFFSET(::gtxilib::oopclasses::protos::Rect, _has_bits_),
+  ~0u,  // no _has_bits_
   PROTOBUF_FIELD_OFFSET(::gtxilib::oopclasses::protos::Rect, _internal_metadata_),
   ~0u,  // no _extensions_
   ~0u,  // no _oneof_case_
   ~0u,  // no _weak_field_map_
   PROTOBUF_FIELD_OFFSET(::gtxilib::oopclasses::protos::Rect, origin_),
   PROTOBUF_FIELD_OFFSET(::gtxilib::oopclasses::protos::Rect, size_),
-  0,
-  1,
   ~0u,  // no _has_bits_
   PROTOBUF_FIELD_OFFSET(::gtxilib::oopclasses::protos::ElementType, _internal_metadata_),
   ~0u,  // no _extensions_
   ~0u,  // no _oneof_case_
   ~0u,  // no _weak_field_map_
-  PROTOBUF_FIELD_OFFSET(::gtxilib::oopclasses::protos::UIElement, _has_bits_),
+  ~0u,  // no _has_bits_
   PROTOBUF_FIELD_OFFSET(::gtxilib::oopclasses::protos::UIElement, _internal_metadata_),
   ~0u,  // no _extensions_
   ~0u,  // no _oneof_case_
@@ -158,18 +157,13 @@
   PROTOBUF_FIELD_OFFSET(::gtxilib::oopclasses::protos::UIElement, ax_label_),
   PROTOBUF_FIELD_OFFSET(::gtxilib::oopclasses::protos::UIElement, ax_frame_),
   PROTOBUF_FIELD_OFFSET(::gtxilib::oopclasses::protos::UIElement, ax_element_type_),
-  3,
-  2,
-  0,
-  1,
-  4,
 };
 static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
-  { 0, 7, sizeof(::gtxilib::oopclasses::protos::Point)},
-  { 9, 16, sizeof(::gtxilib::oopclasses::protos::Size)},
-  { 18, 25, sizeof(::gtxilib::oopclasses::protos::Rect)},
-  { 27, -1, sizeof(::gtxilib::oopclasses::protos::ElementType)},
-  { 32, 42, sizeof(::gtxilib::oopclasses::protos::UIElement)},
+  { 0, -1, sizeof(::gtxilib::oopclasses::protos::Point)},
+  { 7, -1, sizeof(::gtxilib::oopclasses::protos::Size)},
+  { 14, -1, sizeof(::gtxilib::oopclasses::protos::Rect)},
+  { 21, -1, sizeof(::gtxilib::oopclasses::protos::ElementType)},
+  { 26, -1, sizeof(::gtxilib::oopclasses::protos::UIElement)},
 };
 
 static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
@@ -181,55 +175,50 @@
 };
 
 const char descriptor_table_protodef_gtx_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
-  "\n\tgtx.proto\022\031gtxilib.oopclasses.protos\"3"
-  "\n\005Point\022\016\n\001x\030\001 \001(\002H\000\210\001\001\022\016\n\001y\030\002 \001(\002H\001\210\001\001B"
-  "\004\n\002_xB\004\n\002_y\"D\n\004Size\022\022\n\005width\030\001 \001(\002H\000\210\001\001\022"
-  "\023\n\006height\030\002 \001(\002H\001\210\001\001B\010\n\006_widthB\t\n\007_heigh"
-  "t\"\205\001\n\004Rect\0225\n\006origin\030\001 \001(\0132 .gtxilib.oop"
-  "classes.protos.PointH\000\210\001\001\0222\n\004size\030\002 \001(\0132"
-  "\037.gtxilib.oopclasses.protos.SizeH\001\210\001\001B\t\n"
-  "\007_originB\007\n\005_size\"\233\n\n\013ElementType\"\213\n\n\017El"
-  "ementTypeEnum\022\007\n\003ANY\020\000\022\t\n\005OTHER\020\001\022\017\n\013APP"
-  "LICATION\020\002\022\t\n\005GROUP\020\003\022\n\n\006WINDOW\020\004\022\t\n\005SHE"
-  "ET\020\005\022\n\n\006DRAWER\020\006\022\t\n\005ALERT\020\007\022\n\n\006DIALOG\020\010\022"
-  "\n\n\006BUTTON\020\t\022\020\n\014RADIO_BUTTON\020\n\022\017\n\013RADIO_G"
-  "ROUP\020\013\022\r\n\tCHECK_BOX\020\014\022\027\n\023DISCLOSURE_TRIA"
-  "NGLE\020\r\022\021\n\rPOP_UP_BUTTON\020\016\022\r\n\tCOMBO_BOX\020\017"
-  "\022\017\n\013MENU_BUTTON\020\020\022\022\n\016TOOLBAR_BUTTON\020\021\022\013\n"
-  "\007POPOVER\020\022\022\014\n\010KEYBOARD\020\023\022\007\n\003KEY\020\024\022\022\n\016NAV"
-  "IGATION_BAR\020\025\022\013\n\007TAB_BAR\020\026\022\r\n\tTAB_GROUP\020"
-  "\027\022\013\n\007TOOLBAR\020\030\022\016\n\nSTATUS_BAR\020\031\022\t\n\005TABLE\020"
-  "\032\022\r\n\tTABLE_ROW\020\033\022\020\n\014TABLE_COLUMN\020\034\022\013\n\007OU"
-  "TLINE\020\035\022\017\n\013OUTLINE_ROW\020\036\022\013\n\007BROWSER\020\037\022\023\n"
-  "\017COLLECTION_VIEW\020 \022\n\n\006SLIDER\020!\022\022\n\016PAGE_I"
-  "NDICATOR\020\"\022\026\n\022PROGRESS_INDICATOR\020#\022\026\n\022AC"
-  "TIVITY_INDICATOR\020$\022\025\n\021SEGMENTED_CONTROL\020"
-  "%\022\n\n\006PICKER\020&\022\020\n\014PICKER_WHEEL\020\'\022\n\n\006SWITC"
-  "H\020(\022\n\n\006TOGGLE\020)\022\010\n\004LINK\020*\022\t\n\005IMAGE\020+\022\010\n\004"
-  "ICON\020,\022\020\n\014SEARCH_FIELD\020-\022\017\n\013SCROLL_VIEW\020"
-  ".\022\016\n\nSCROLL_BAR\020/\022\017\n\013STATIC_TEXT\0200\022\016\n\nTE"
-  "XT_FIELD\0201\022\025\n\021SECURE_TEXT_FIELD\0202\022\017\n\013DAT"
-  "E_PICKER\0203\022\r\n\tTEXT_VIEW\0204\022\010\n\004MENU\0205\022\r\n\tM"
-  "ENU_ITEM\0206\022\014\n\010MENU_BAR\0207\022\021\n\rMENU_BAR_ITE"
-  "M\0208\022\007\n\003MAP\0209\022\014\n\010WEB_VIEW\020:\022\023\n\017INCREMENT_"
-  "ARROW\020;\022\023\n\017DECREMENT_ARROW\020<\022\014\n\010TIMELINE"
-  "\020=\022\024\n\020RATING_INDICATOR\020>\022\023\n\017VALUE_INDICA"
-  "TOR\020\?\022\017\n\013SPLIT_GROUP\020@\022\014\n\010SPLITTER\020A\022\027\n\023"
-  "RELEVANCE_INDICATOR\020B\022\016\n\nCOLOR_WELL\020C\022\014\n"
-  "\010HELP_TAG\020D\022\t\n\005MATTE\020E\022\r\n\tDOCK_ITEM\020F\022\t\n"
-  "\005RULER\020G\022\020\n\014RULER_MARKER\020H\022\010\n\004GRID\020I\022\023\n\017"
-  "LEVEL_INDICATOR\020J\022\010\n\004CELL\020K\022\017\n\013LAYOUT_AR"
-  "EA\020L\022\017\n\013LAYOUT_ITEM\020M\022\n\n\006HANDLE\020N\022\013\n\007STE"
-  "PPER\020O\022\007\n\003TAB\020P\022\r\n\tTOUCH_BAR\020Q\022\017\n\013STATUS"
-  "_ITEM\020R\"\262\002\n\tUIElement\022\032\n\ris_ax_element\030\001"
-  " \001(\010H\000\210\001\001\022\026\n\tax_traits\030\002 \001(\004H\001\210\001\001\022\025\n\010ax_"
-  "label\030\003 \001(\tH\002\210\001\001\0226\n\010ax_frame\030\004 \001(\0132\037.gtx"
-  "ilib.oopclasses.protos.RectH\003\210\001\001\022T\n\017ax_e"
-  "lement_type\030\005 \001(\01626.gtxilib.oopclasses.p"
-  "rotos.ElementType.ElementTypeEnumH\004\210\001\001B\020"
-  "\n\016_is_ax_elementB\014\n\n_ax_traitsB\013\n\t_ax_la"
-  "belB\013\n\t_ax_frameB\022\n\020_ax_element_typeb\006pr"
-  "oto3"
+  "\n\tgtx.proto\022\031gtxilib.oopclasses.protos\"\035"
+  "\n\005Point\022\t\n\001x\030\001 \001(\002\022\t\n\001y\030\002 \001(\002\"%\n\004Size\022\r\n"
+  "\005width\030\001 \001(\002\022\016\n\006height\030\002 \001(\002\"g\n\004Rect\0220\n\006"
+  "origin\030\001 \001(\0132 .gtxilib.oopclasses.protos"
+  ".Point\022-\n\004size\030\002 \001(\0132\037.gtxilib.oopclasse"
+  "s.protos.Size\"\233\n\n\013ElementType\"\213\n\n\017Elemen"
+  "tTypeEnum\022\007\n\003ANY\020\000\022\t\n\005OTHER\020\001\022\017\n\013APPLICA"
+  "TION\020\002\022\t\n\005GROUP\020\003\022\n\n\006WINDOW\020\004\022\t\n\005SHEET\020\005"
+  "\022\n\n\006DRAWER\020\006\022\t\n\005ALERT\020\007\022\n\n\006DIALOG\020\010\022\n\n\006B"
+  "UTTON\020\t\022\020\n\014RADIO_BUTTON\020\n\022\017\n\013RADIO_GROUP"
+  "\020\013\022\r\n\tCHECK_BOX\020\014\022\027\n\023DISCLOSURE_TRIANGLE"
+  "\020\r\022\021\n\rPOP_UP_BUTTON\020\016\022\r\n\tCOMBO_BOX\020\017\022\017\n\013"
+  "MENU_BUTTON\020\020\022\022\n\016TOOLBAR_BUTTON\020\021\022\013\n\007POP"
+  "OVER\020\022\022\014\n\010KEYBOARD\020\023\022\007\n\003KEY\020\024\022\022\n\016NAVIGAT"
+  "ION_BAR\020\025\022\013\n\007TAB_BAR\020\026\022\r\n\tTAB_GROUP\020\027\022\013\n"
+  "\007TOOLBAR\020\030\022\016\n\nSTATUS_BAR\020\031\022\t\n\005TABLE\020\032\022\r\n"
+  "\tTABLE_ROW\020\033\022\020\n\014TABLE_COLUMN\020\034\022\013\n\007OUTLIN"
+  "E\020\035\022\017\n\013OUTLINE_ROW\020\036\022\013\n\007BROWSER\020\037\022\023\n\017COL"
+  "LECTION_VIEW\020 \022\n\n\006SLIDER\020!\022\022\n\016PAGE_INDIC"
+  "ATOR\020\"\022\026\n\022PROGRESS_INDICATOR\020#\022\026\n\022ACTIVI"
+  "TY_INDICATOR\020$\022\025\n\021SEGMENTED_CONTROL\020%\022\n\n"
+  "\006PICKER\020&\022\020\n\014PICKER_WHEEL\020\'\022\n\n\006SWITCH\020(\022"
+  "\n\n\006TOGGLE\020)\022\010\n\004LINK\020*\022\t\n\005IMAGE\020+\022\010\n\004ICON"
+  "\020,\022\020\n\014SEARCH_FIELD\020-\022\017\n\013SCROLL_VIEW\020.\022\016\n"
+  "\nSCROLL_BAR\020/\022\017\n\013STATIC_TEXT\0200\022\016\n\nTEXT_F"
+  "IELD\0201\022\025\n\021SECURE_TEXT_FIELD\0202\022\017\n\013DATE_PI"
+  "CKER\0203\022\r\n\tTEXT_VIEW\0204\022\010\n\004MENU\0205\022\r\n\tMENU_"
+  "ITEM\0206\022\014\n\010MENU_BAR\0207\022\021\n\rMENU_BAR_ITEM\0208\022"
+  "\007\n\003MAP\0209\022\014\n\010WEB_VIEW\020:\022\023\n\017INCREMENT_ARRO"
+  "W\020;\022\023\n\017DECREMENT_ARROW\020<\022\014\n\010TIMELINE\020=\022\024"
+  "\n\020RATING_INDICATOR\020>\022\023\n\017VALUE_INDICATOR\020"
+  "\?\022\017\n\013SPLIT_GROUP\020@\022\014\n\010SPLITTER\020A\022\027\n\023RELE"
+  "VANCE_INDICATOR\020B\022\016\n\nCOLOR_WELL\020C\022\014\n\010HEL"
+  "P_TAG\020D\022\t\n\005MATTE\020E\022\r\n\tDOCK_ITEM\020F\022\t\n\005RUL"
+  "ER\020G\022\020\n\014RULER_MARKER\020H\022\010\n\004GRID\020I\022\023\n\017LEVE"
+  "L_INDICATOR\020J\022\010\n\004CELL\020K\022\017\n\013LAYOUT_AREA\020L"
+  "\022\017\n\013LAYOUT_ITEM\020M\022\n\n\006HANDLE\020N\022\013\n\007STEPPER"
+  "\020O\022\007\n\003TAB\020P\022\r\n\tTOUCH_BAR\020Q\022\017\n\013STATUS_ITE"
+  "M\020R\"\313\001\n\tUIElement\022\025\n\ris_ax_element\030\001 \001(\010"
+  "\022\021\n\tax_traits\030\002 \001(\004\022\020\n\010ax_label\030\003 \001(\t\0221\n"
+  "\010ax_frame\030\004 \001(\0132\037.gtxilib.oopclasses.pro"
+  "tos.Rect\022O\n\017ax_element_type\030\005 \001(\01626.gtxi"
+  "lib.oopclasses.protos.ElementType.Elemen"
+  "tTypeEnumb\006proto3"
   ;
 static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_gtx_2eproto_deps[1] = {
 };
@@ -242,7 +231,7 @@
 };
 static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_gtx_2eproto_once;
 const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_gtx_2eproto = {
-  false, false, descriptor_table_protodef_gtx_2eproto, "gtx.proto", 1924,
+  false, false, descriptor_table_protodef_gtx_2eproto, "gtx.proto", 1737,
   &descriptor_table_gtx_2eproto_once, descriptor_table_gtx_2eproto_sccs, descriptor_table_gtx_2eproto_deps, 5, 0,
   schemas, file_default_instances, TableStruct_gtx_2eproto::offsets,
   file_level_metadata_gtx_2eproto, 5, file_level_enum_descriptors_gtx_2eproto, file_level_service_descriptors_gtx_2eproto,
@@ -439,15 +428,10 @@
 
 // ===================================================================
 
+void Point::InitAsDefaultInstance() {
+}
 class Point::_Internal {
  public:
-  using HasBits = decltype(std::declval<Point>()._has_bits_);
-  static void set_has_x(HasBits* has_bits) {
-    (*has_bits)[0] |= 1u;
-  }
-  static void set_has_y(HasBits* has_bits) {
-    (*has_bits)[0] |= 2u;
-  }
 };
 
 Point::Point(::PROTOBUF_NAMESPACE_ID::Arena* arena)
@@ -457,8 +441,7 @@
   // @@protoc_insertion_point(arena_constructor:gtxilib.oopclasses.protos.Point)
 }
 Point::Point(const Point& from)
-  : ::PROTOBUF_NAMESPACE_ID::Message(),
-      _has_bits_(from._has_bits_) {
+  : ::PROTOBUF_NAMESPACE_ID::Message() {
   _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
   ::memcpy(&x_, &from.x_,
     static_cast<size_t>(reinterpret_cast<char*>(&y_) -
@@ -467,9 +450,8 @@
 }
 
 void Point::SharedCtor() {
-  ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
-      reinterpret_cast<char*>(&x_) - reinterpret_cast<char*>(this)),
-      0, static_cast<size_t>(reinterpret_cast<char*>(&y_) -
+  ::memset(&x_, 0, static_cast<size_t>(
+      reinterpret_cast<char*>(&y_) -
       reinterpret_cast<char*>(&x_)) + sizeof(y_));
 }
 
@@ -504,19 +486,15 @@
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
-  cached_has_bits = _has_bits_[0];
-  if (cached_has_bits & 0x00000003u) {
-    ::memset(&x_, 0, static_cast<size_t>(
-        reinterpret_cast<char*>(&y_) -
-        reinterpret_cast<char*>(&x_)) + sizeof(y_));
-  }
-  _has_bits_.Clear();
+  ::memset(&x_, 0, static_cast<size_t>(
+      reinterpret_cast<char*>(&y_) -
+      reinterpret_cast<char*>(&x_)) + sizeof(y_));
   _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 }
 
 const char* Point::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  _Internal::HasBits has_bits{};
+  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
   while (!ctx->Done(&ptr)) {
     ::PROTOBUF_NAMESPACE_ID::uint32 tag;
     ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
@@ -525,7 +503,6 @@
       // float x = 1;
       case 1:
         if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 13)) {
-          _Internal::set_has_x(&has_bits);
           x_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
           ptr += sizeof(float);
         } else goto handle_unusual;
@@ -533,7 +510,6 @@
       // float y = 2;
       case 2:
         if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
-          _Internal::set_has_y(&has_bits);
           y_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
           ptr += sizeof(float);
         } else goto handle_unusual;
@@ -553,7 +529,6 @@
     }  // switch
   }  // while
 success:
-  _has_bits_.Or(has_bits);
   return ptr;
 failure:
   ptr = nullptr;
@@ -568,13 +543,13 @@
   (void) cached_has_bits;
 
   // float x = 1;
-  if (_internal_has_x()) {
+  if (!(this->x() <= 0 && this->x() >= 0)) {
     target = stream->EnsureSpace(target);
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(1, this->_internal_x(), target);
   }
 
   // float y = 2;
-  if (_internal_has_y()) {
+  if (!(this->y() <= 0 && this->y() >= 0)) {
     target = stream->EnsureSpace(target);
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_y(), target);
   }
@@ -595,19 +570,16 @@
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
-  cached_has_bits = _has_bits_[0];
-  if (cached_has_bits & 0x00000003u) {
-    // float x = 1;
-    if (cached_has_bits & 0x00000001u) {
-      total_size += 1 + 4;
-    }
-
-    // float y = 2;
-    if (cached_has_bits & 0x00000002u) {
-      total_size += 1 + 4;
-    }
-
+  // float x = 1;
+  if (!(this->x() <= 0 && this->x() >= 0)) {
+    total_size += 1 + 4;
   }
+
+  // float y = 2;
+  if (!(this->y() <= 0 && this->y() >= 0)) {
+    total_size += 1 + 4;
+  }
+
   if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
     return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
         _internal_metadata_, total_size, &_cached_size_);
@@ -639,15 +611,11 @@
   ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
   (void) cached_has_bits;
 
-  cached_has_bits = from._has_bits_[0];
-  if (cached_has_bits & 0x00000003u) {
-    if (cached_has_bits & 0x00000001u) {
-      x_ = from.x_;
-    }
-    if (cached_has_bits & 0x00000002u) {
-      y_ = from.y_;
-    }
-    _has_bits_[0] |= cached_has_bits;
+  if (!(from.x() <= 0 && from.x() >= 0)) {
+    _internal_set_x(from._internal_x());
+  }
+  if (!(from.y() <= 0 && from.y() >= 0)) {
+    _internal_set_y(from._internal_y());
   }
 }
 
@@ -672,7 +640,6 @@
 void Point::InternalSwap(Point* other) {
   using std::swap;
   _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
-  swap(_has_bits_[0], other->_has_bits_[0]);
   ::PROTOBUF_NAMESPACE_ID::internal::memswap<
       PROTOBUF_FIELD_OFFSET(Point, y_)
       + sizeof(Point::y_)
@@ -688,15 +655,10 @@
 
 // ===================================================================
 
+void Size::InitAsDefaultInstance() {
+}
 class Size::_Internal {
  public:
-  using HasBits = decltype(std::declval<Size>()._has_bits_);
-  static void set_has_width(HasBits* has_bits) {
-    (*has_bits)[0] |= 1u;
-  }
-  static void set_has_height(HasBits* has_bits) {
-    (*has_bits)[0] |= 2u;
-  }
 };
 
 Size::Size(::PROTOBUF_NAMESPACE_ID::Arena* arena)
@@ -706,8 +668,7 @@
   // @@protoc_insertion_point(arena_constructor:gtxilib.oopclasses.protos.Size)
 }
 Size::Size(const Size& from)
-  : ::PROTOBUF_NAMESPACE_ID::Message(),
-      _has_bits_(from._has_bits_) {
+  : ::PROTOBUF_NAMESPACE_ID::Message() {
   _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
   ::memcpy(&width_, &from.width_,
     static_cast<size_t>(reinterpret_cast<char*>(&height_) -
@@ -716,9 +677,8 @@
 }
 
 void Size::SharedCtor() {
-  ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
-      reinterpret_cast<char*>(&width_) - reinterpret_cast<char*>(this)),
-      0, static_cast<size_t>(reinterpret_cast<char*>(&height_) -
+  ::memset(&width_, 0, static_cast<size_t>(
+      reinterpret_cast<char*>(&height_) -
       reinterpret_cast<char*>(&width_)) + sizeof(height_));
 }
 
@@ -753,19 +713,15 @@
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
-  cached_has_bits = _has_bits_[0];
-  if (cached_has_bits & 0x00000003u) {
-    ::memset(&width_, 0, static_cast<size_t>(
-        reinterpret_cast<char*>(&height_) -
-        reinterpret_cast<char*>(&width_)) + sizeof(height_));
-  }
-  _has_bits_.Clear();
+  ::memset(&width_, 0, static_cast<size_t>(
+      reinterpret_cast<char*>(&height_) -
+      reinterpret_cast<char*>(&width_)) + sizeof(height_));
   _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 }
 
 const char* Size::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  _Internal::HasBits has_bits{};
+  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
   while (!ctx->Done(&ptr)) {
     ::PROTOBUF_NAMESPACE_ID::uint32 tag;
     ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
@@ -774,7 +730,6 @@
       // float width = 1;
       case 1:
         if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 13)) {
-          _Internal::set_has_width(&has_bits);
           width_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
           ptr += sizeof(float);
         } else goto handle_unusual;
@@ -782,7 +737,6 @@
       // float height = 2;
       case 2:
         if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
-          _Internal::set_has_height(&has_bits);
           height_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
           ptr += sizeof(float);
         } else goto handle_unusual;
@@ -802,7 +756,6 @@
     }  // switch
   }  // while
 success:
-  _has_bits_.Or(has_bits);
   return ptr;
 failure:
   ptr = nullptr;
@@ -817,13 +770,13 @@
   (void) cached_has_bits;
 
   // float width = 1;
-  if (_internal_has_width()) {
+  if (!(this->width() <= 0 && this->width() >= 0)) {
     target = stream->EnsureSpace(target);
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(1, this->_internal_width(), target);
   }
 
   // float height = 2;
-  if (_internal_has_height()) {
+  if (!(this->height() <= 0 && this->height() >= 0)) {
     target = stream->EnsureSpace(target);
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_height(), target);
   }
@@ -844,19 +797,16 @@
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
-  cached_has_bits = _has_bits_[0];
-  if (cached_has_bits & 0x00000003u) {
-    // float width = 1;
-    if (cached_has_bits & 0x00000001u) {
-      total_size += 1 + 4;
-    }
-
-    // float height = 2;
-    if (cached_has_bits & 0x00000002u) {
-      total_size += 1 + 4;
-    }
-
+  // float width = 1;
+  if (!(this->width() <= 0 && this->width() >= 0)) {
+    total_size += 1 + 4;
   }
+
+  // float height = 2;
+  if (!(this->height() <= 0 && this->height() >= 0)) {
+    total_size += 1 + 4;
+  }
+
   if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
     return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
         _internal_metadata_, total_size, &_cached_size_);
@@ -888,15 +838,11 @@
   ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
   (void) cached_has_bits;
 
-  cached_has_bits = from._has_bits_[0];
-  if (cached_has_bits & 0x00000003u) {
-    if (cached_has_bits & 0x00000001u) {
-      width_ = from.width_;
-    }
-    if (cached_has_bits & 0x00000002u) {
-      height_ = from.height_;
-    }
-    _has_bits_[0] |= cached_has_bits;
+  if (!(from.width() <= 0 && from.width() >= 0)) {
+    _internal_set_width(from._internal_width());
+  }
+  if (!(from.height() <= 0 && from.height() >= 0)) {
+    _internal_set_height(from._internal_height());
   }
 }
 
@@ -921,7 +867,6 @@
 void Size::InternalSwap(Size* other) {
   using std::swap;
   _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
-  swap(_has_bits_[0], other->_has_bits_[0]);
   ::PROTOBUF_NAMESPACE_ID::internal::memswap<
       PROTOBUF_FIELD_OFFSET(Size, height_)
       + sizeof(Size::height_)
@@ -937,17 +882,16 @@
 
 // ===================================================================
 
+void Rect::InitAsDefaultInstance() {
+  ::gtxilib::oopclasses::protos::_Rect_default_instance_._instance.get_mutable()->origin_ = const_cast< ::gtxilib::oopclasses::protos::Point*>(
+      ::gtxilib::oopclasses::protos::Point::internal_default_instance());
+  ::gtxilib::oopclasses::protos::_Rect_default_instance_._instance.get_mutable()->size_ = const_cast< ::gtxilib::oopclasses::protos::Size*>(
+      ::gtxilib::oopclasses::protos::Size::internal_default_instance());
+}
 class Rect::_Internal {
  public:
-  using HasBits = decltype(std::declval<Rect>()._has_bits_);
   static const ::gtxilib::oopclasses::protos::Point& origin(const Rect* msg);
-  static void set_has_origin(HasBits* has_bits) {
-    (*has_bits)[0] |= 1u;
-  }
   static const ::gtxilib::oopclasses::protos::Size& size(const Rect* msg);
-  static void set_has_size(HasBits* has_bits) {
-    (*has_bits)[0] |= 2u;
-  }
 };
 
 const ::gtxilib::oopclasses::protos::Point&
@@ -965,8 +909,7 @@
   // @@protoc_insertion_point(arena_constructor:gtxilib.oopclasses.protos.Rect)
 }
 Rect::Rect(const Rect& from)
-  : ::PROTOBUF_NAMESPACE_ID::Message(),
-      _has_bits_(from._has_bits_) {
+  : ::PROTOBUF_NAMESPACE_ID::Message() {
   _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
   if (from._internal_has_origin()) {
     origin_ = new ::gtxilib::oopclasses::protos::Point(*from.origin_);
@@ -983,9 +926,8 @@
 
 void Rect::SharedCtor() {
   ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Rect_gtx_2eproto.base);
-  ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
-      reinterpret_cast<char*>(&origin_) - reinterpret_cast<char*>(this)),
-      0, static_cast<size_t>(reinterpret_cast<char*>(&size_) -
+  ::memset(&origin_, 0, static_cast<size_t>(
+      reinterpret_cast<char*>(&size_) -
       reinterpret_cast<char*>(&origin_)) + sizeof(size_));
 }
 
@@ -1022,28 +964,20 @@
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
-  cached_has_bits = _has_bits_[0];
-  if (cached_has_bits & 0x00000003u) {
-    if (cached_has_bits & 0x00000001u) {
-      if (GetArena() == nullptr && origin_ != nullptr) {
-        delete origin_;
-      }
-      origin_ = nullptr;
-    }
-    if (cached_has_bits & 0x00000002u) {
-      if (GetArena() == nullptr && size_ != nullptr) {
-        delete size_;
-      }
-      size_ = nullptr;
-    }
+  if (GetArena() == nullptr && origin_ != nullptr) {
+    delete origin_;
   }
-  _has_bits_.Clear();
+  origin_ = nullptr;
+  if (GetArena() == nullptr && size_ != nullptr) {
+    delete size_;
+  }
+  size_ = nullptr;
   _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 }
 
 const char* Rect::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  _Internal::HasBits has_bits{};
+  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
   while (!ctx->Done(&ptr)) {
     ::PROTOBUF_NAMESPACE_ID::uint32 tag;
     ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
@@ -1078,7 +1012,6 @@
     }  // switch
   }  // while
 success:
-  _has_bits_.Or(has_bits);
   return ptr;
 failure:
   ptr = nullptr;
@@ -1093,7 +1026,7 @@
   (void) cached_has_bits;
 
   // .gtxilib.oopclasses.protos.Point origin = 1;
-  if (_internal_has_origin()) {
+  if (this->has_origin()) {
     target = stream->EnsureSpace(target);
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
       InternalWriteMessage(
@@ -1101,7 +1034,7 @@
   }
 
   // .gtxilib.oopclasses.protos.Size size = 2;
-  if (_internal_has_size()) {
+  if (this->has_size()) {
     target = stream->EnsureSpace(target);
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
       InternalWriteMessage(
@@ -1124,23 +1057,20 @@
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
-  cached_has_bits = _has_bits_[0];
-  if (cached_has_bits & 0x00000003u) {
-    // .gtxilib.oopclasses.protos.Point origin = 1;
-    if (cached_has_bits & 0x00000001u) {
-      total_size += 1 +
-        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-          *origin_);
-    }
-
-    // .gtxilib.oopclasses.protos.Size size = 2;
-    if (cached_has_bits & 0x00000002u) {
-      total_size += 1 +
-        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-          *size_);
-    }
-
+  // .gtxilib.oopclasses.protos.Point origin = 1;
+  if (this->has_origin()) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+        *origin_);
   }
+
+  // .gtxilib.oopclasses.protos.Size size = 2;
+  if (this->has_size()) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+        *size_);
+  }
+
   if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
     return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
         _internal_metadata_, total_size, &_cached_size_);
@@ -1172,14 +1102,11 @@
   ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
   (void) cached_has_bits;
 
-  cached_has_bits = from._has_bits_[0];
-  if (cached_has_bits & 0x00000003u) {
-    if (cached_has_bits & 0x00000001u) {
-      _internal_mutable_origin()->::gtxilib::oopclasses::protos::Point::MergeFrom(from._internal_origin());
-    }
-    if (cached_has_bits & 0x00000002u) {
-      _internal_mutable_size()->::gtxilib::oopclasses::protos::Size::MergeFrom(from._internal_size());
-    }
+  if (from.has_origin()) {
+    _internal_mutable_origin()->::gtxilib::oopclasses::protos::Point::MergeFrom(from._internal_origin());
+  }
+  if (from.has_size()) {
+    _internal_mutable_size()->::gtxilib::oopclasses::protos::Size::MergeFrom(from._internal_size());
   }
 }
 
@@ -1204,7 +1131,6 @@
 void Rect::InternalSwap(Rect* other) {
   using std::swap;
   _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
-  swap(_has_bits_[0], other->_has_bits_[0]);
   ::PROTOBUF_NAMESPACE_ID::internal::memswap<
       PROTOBUF_FIELD_OFFSET(Rect, size_)
       + sizeof(Rect::size_)
@@ -1220,6 +1146,8 @@
 
 // ===================================================================
 
+void ElementType::InitAsDefaultInstance() {
+}
 class ElementType::_Internal {
  public:
 };
@@ -1275,6 +1203,7 @@
 
 const char* ElementType::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
+  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
   while (!ctx->Done(&ptr)) {
     ::PROTOBUF_NAMESPACE_ID::uint32 tag;
     ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
@@ -1382,25 +1311,13 @@
 
 // ===================================================================
 
+void UIElement::InitAsDefaultInstance() {
+  ::gtxilib::oopclasses::protos::_UIElement_default_instance_._instance.get_mutable()->ax_frame_ = const_cast< ::gtxilib::oopclasses::protos::Rect*>(
+      ::gtxilib::oopclasses::protos::Rect::internal_default_instance());
+}
 class UIElement::_Internal {
  public:
-  using HasBits = decltype(std::declval<UIElement>()._has_bits_);
-  static void set_has_is_ax_element(HasBits* has_bits) {
-    (*has_bits)[0] |= 8u;
-  }
-  static void set_has_ax_traits(HasBits* has_bits) {
-    (*has_bits)[0] |= 4u;
-  }
-  static void set_has_ax_label(HasBits* has_bits) {
-    (*has_bits)[0] |= 1u;
-  }
   static const ::gtxilib::oopclasses::protos::Rect& ax_frame(const UIElement* msg);
-  static void set_has_ax_frame(HasBits* has_bits) {
-    (*has_bits)[0] |= 2u;
-  }
-  static void set_has_ax_element_type(HasBits* has_bits) {
-    (*has_bits)[0] |= 16u;
-  }
 };
 
 const ::gtxilib::oopclasses::protos::Rect&
@@ -1414,12 +1331,11 @@
   // @@protoc_insertion_point(arena_constructor:gtxilib.oopclasses.protos.UIElement)
 }
 UIElement::UIElement(const UIElement& from)
-  : ::PROTOBUF_NAMESPACE_ID::Message(),
-      _has_bits_(from._has_bits_) {
+  : ::PROTOBUF_NAMESPACE_ID::Message() {
   _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
   ax_label_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (from._internal_has_ax_label()) {
-    ax_label_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_ax_label(), 
+  if (!from._internal_ax_label().empty()) {
+    ax_label_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_ax_label(),
       GetArena());
   }
   if (from._internal_has_ax_frame()) {
@@ -1436,9 +1352,8 @@
 void UIElement::SharedCtor() {
   ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_UIElement_gtx_2eproto.base);
   ax_label_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
-      reinterpret_cast<char*>(&ax_frame_) - reinterpret_cast<char*>(this)),
-      0, static_cast<size_t>(reinterpret_cast<char*>(&ax_element_type_) -
+  ::memset(&ax_frame_, 0, static_cast<size_t>(
+      reinterpret_cast<char*>(&ax_element_type_) -
       reinterpret_cast<char*>(&ax_frame_)) + sizeof(ax_element_type_));
 }
 
@@ -1475,30 +1390,20 @@
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
-  cached_has_bits = _has_bits_[0];
-  if (cached_has_bits & 0x00000003u) {
-    if (cached_has_bits & 0x00000001u) {
-      ax_label_.ClearNonDefaultToEmpty();
-    }
-    if (cached_has_bits & 0x00000002u) {
-      if (GetArena() == nullptr && ax_frame_ != nullptr) {
-        delete ax_frame_;
-      }
-      ax_frame_ = nullptr;
-    }
+  ax_label_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
+  if (GetArena() == nullptr && ax_frame_ != nullptr) {
+    delete ax_frame_;
   }
-  if (cached_has_bits & 0x0000001cu) {
-    ::memset(&ax_traits_, 0, static_cast<size_t>(
-        reinterpret_cast<char*>(&ax_element_type_) -
-        reinterpret_cast<char*>(&ax_traits_)) + sizeof(ax_element_type_));
-  }
-  _has_bits_.Clear();
+  ax_frame_ = nullptr;
+  ::memset(&ax_traits_, 0, static_cast<size_t>(
+      reinterpret_cast<char*>(&ax_element_type_) -
+      reinterpret_cast<char*>(&ax_traits_)) + sizeof(ax_element_type_));
   _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 }
 
 const char* UIElement::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  _Internal::HasBits has_bits{};
+  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
   while (!ctx->Done(&ptr)) {
     ::PROTOBUF_NAMESPACE_ID::uint32 tag;
     ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
@@ -1507,7 +1412,6 @@
       // bool is_ax_element = 1;
       case 1:
         if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
-          _Internal::set_has_is_ax_element(&has_bits);
           is_ax_element_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
           CHK_(ptr);
         } else goto handle_unusual;
@@ -1515,7 +1419,6 @@
       // uint64 ax_traits = 2;
       case 2:
         if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
-          _Internal::set_has_ax_traits(&has_bits);
           ax_traits_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
           CHK_(ptr);
         } else goto handle_unusual;
@@ -1559,7 +1462,6 @@
     }  // switch
   }  // while
 success:
-  _has_bits_.Or(has_bits);
   return ptr;
 failure:
   ptr = nullptr;
@@ -1574,19 +1476,19 @@
   (void) cached_has_bits;
 
   // bool is_ax_element = 1;
-  if (_internal_has_is_ax_element()) {
+  if (this->is_ax_element() != 0) {
     target = stream->EnsureSpace(target);
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_is_ax_element(), target);
   }
 
   // uint64 ax_traits = 2;
-  if (_internal_has_ax_traits()) {
+  if (this->ax_traits() != 0) {
     target = stream->EnsureSpace(target);
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt64ToArray(2, this->_internal_ax_traits(), target);
   }
 
   // string ax_label = 3;
-  if (_internal_has_ax_label()) {
+  if (this->ax_label().size() > 0) {
     ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
       this->_internal_ax_label().data(), static_cast<int>(this->_internal_ax_label().length()),
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
@@ -1596,7 +1498,7 @@
   }
 
   // .gtxilib.oopclasses.protos.Rect ax_frame = 4;
-  if (_internal_has_ax_frame()) {
+  if (this->has_ax_frame()) {
     target = stream->EnsureSpace(target);
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
       InternalWriteMessage(
@@ -1604,7 +1506,7 @@
   }
 
   // .gtxilib.oopclasses.protos.ElementType.ElementTypeEnum ax_element_type = 5;
-  if (_internal_has_ax_element_type()) {
+  if (this->ax_element_type() != 0) {
     target = stream->EnsureSpace(target);
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
       5, this->_internal_ax_element_type(), target);
@@ -1626,41 +1528,38 @@
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
-  cached_has_bits = _has_bits_[0];
-  if (cached_has_bits & 0x0000001fu) {
-    // string ax_label = 3;
-    if (cached_has_bits & 0x00000001u) {
-      total_size += 1 +
-        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
-          this->_internal_ax_label());
-    }
-
-    // .gtxilib.oopclasses.protos.Rect ax_frame = 4;
-    if (cached_has_bits & 0x00000002u) {
-      total_size += 1 +
-        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-          *ax_frame_);
-    }
-
-    // uint64 ax_traits = 2;
-    if (cached_has_bits & 0x00000004u) {
-      total_size += 1 +
-        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt64Size(
-          this->_internal_ax_traits());
-    }
-
-    // bool is_ax_element = 1;
-    if (cached_has_bits & 0x00000008u) {
-      total_size += 1 + 1;
-    }
-
-    // .gtxilib.oopclasses.protos.ElementType.ElementTypeEnum ax_element_type = 5;
-    if (cached_has_bits & 0x00000010u) {
-      total_size += 1 +
-        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_ax_element_type());
-    }
-
+  // string ax_label = 3;
+  if (this->ax_label().size() > 0) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
+        this->_internal_ax_label());
   }
+
+  // .gtxilib.oopclasses.protos.Rect ax_frame = 4;
+  if (this->has_ax_frame()) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+        *ax_frame_);
+  }
+
+  // uint64 ax_traits = 2;
+  if (this->ax_traits() != 0) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt64Size(
+        this->_internal_ax_traits());
+  }
+
+  // bool is_ax_element = 1;
+  if (this->is_ax_element() != 0) {
+    total_size += 1 + 1;
+  }
+
+  // .gtxilib.oopclasses.protos.ElementType.ElementTypeEnum ax_element_type = 5;
+  if (this->ax_element_type() != 0) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_ax_element_type());
+  }
+
   if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
     return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
         _internal_metadata_, total_size, &_cached_size_);
@@ -1692,24 +1591,20 @@
   ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
   (void) cached_has_bits;
 
-  cached_has_bits = from._has_bits_[0];
-  if (cached_has_bits & 0x0000001fu) {
-    if (cached_has_bits & 0x00000001u) {
-      _internal_set_ax_label(from._internal_ax_label());
-    }
-    if (cached_has_bits & 0x00000002u) {
-      _internal_mutable_ax_frame()->::gtxilib::oopclasses::protos::Rect::MergeFrom(from._internal_ax_frame());
-    }
-    if (cached_has_bits & 0x00000004u) {
-      ax_traits_ = from.ax_traits_;
-    }
-    if (cached_has_bits & 0x00000008u) {
-      is_ax_element_ = from.is_ax_element_;
-    }
-    if (cached_has_bits & 0x00000010u) {
-      ax_element_type_ = from.ax_element_type_;
-    }
-    _has_bits_[0] |= cached_has_bits;
+  if (from.ax_label().size() > 0) {
+    _internal_set_ax_label(from._internal_ax_label());
+  }
+  if (from.has_ax_frame()) {
+    _internal_mutable_ax_frame()->::gtxilib::oopclasses::protos::Rect::MergeFrom(from._internal_ax_frame());
+  }
+  if (from.ax_traits() != 0) {
+    _internal_set_ax_traits(from._internal_ax_traits());
+  }
+  if (from.is_ax_element() != 0) {
+    _internal_set_is_ax_element(from._internal_is_ax_element());
+  }
+  if (from.ax_element_type() != 0) {
+    _internal_set_ax_element_type(from._internal_ax_element_type());
   }
 }
 
@@ -1734,7 +1629,6 @@
 void UIElement::InternalSwap(UIElement* other) {
   using std::swap;
   _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
-  swap(_has_bits_[0], other->_has_bits_[0]);
   ax_label_.Swap(&other->ax_label_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
   ::PROTOBUF_NAMESPACE_ID::internal::memswap<
       PROTOBUF_FIELD_OFFSET(UIElement, ax_element_type_)
diff --git a/OOPClasses/Protos/gtx.pb.h b/OOPClasses/Protos/gtx.pb.h
index 4d25d67..b4726f6 100644
--- a/OOPClasses/Protos/gtx.pb.h
+++ b/OOPClasses/Protos/gtx.pb.h
@@ -8,12 +8,12 @@
 #include <string>
 
 #include <google/protobuf/port_def.inc>
-#if PROTOBUF_VERSION < 3014000
+#if PROTOBUF_VERSION < 3013000
 #error This file was generated by a newer version of protoc which is
 #error incompatible with your Protocol Buffer headers. Please update
 #error your headers.
 #endif
-#if 3014000 < PROTOBUF_MIN_PROTOC_VERSION
+#if 3013000 < PROTOBUF_MIN_PROTOC_VERSION
 #error This file was generated by an older version of protoc which is
 #error incompatible with your Protocol Buffer headers. Please
 #error regenerate this file with a newer version of protoc.
@@ -25,6 +25,7 @@
 #include <google/protobuf/arenastring.h>
 #include <google/protobuf/generated_message_table_driven.h>
 #include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/inlined_string_field.h>
 #include <google/protobuf/metadata_lite.h>
 #include <google/protobuf/generated_message_reflection.h>
 #include <google/protobuf/message.h>
@@ -230,6 +231,7 @@
   }
   static const Point& default_instance();
 
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
   static inline const Point* internal_default_instance() {
     return reinterpret_cast<const Point*>(
                &_Point_default_instance_);
@@ -310,10 +312,6 @@
     kYFieldNumber = 2,
   };
   // float x = 1;
-  bool has_x() const;
-  private:
-  bool _internal_has_x() const;
-  public:
   void clear_x();
   float x() const;
   void set_x(float value);
@@ -323,10 +321,6 @@
   public:
 
   // float y = 2;
-  bool has_y() const;
-  private:
-  bool _internal_has_y() const;
-  public:
   void clear_y();
   float y() const;
   void set_y(float value);
@@ -342,10 +336,9 @@
   template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
   typedef void InternalArenaConstructable_;
   typedef void DestructorSkippable_;
-  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
   float x_;
   float y_;
+  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
   friend struct ::TableStruct_gtx_2eproto;
 };
 // -------------------------------------------------------------------
@@ -386,6 +379,7 @@
   }
   static const Size& default_instance();
 
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
   static inline const Size* internal_default_instance() {
     return reinterpret_cast<const Size*>(
                &_Size_default_instance_);
@@ -466,10 +460,6 @@
     kHeightFieldNumber = 2,
   };
   // float width = 1;
-  bool has_width() const;
-  private:
-  bool _internal_has_width() const;
-  public:
   void clear_width();
   float width() const;
   void set_width(float value);
@@ -479,10 +469,6 @@
   public:
 
   // float height = 2;
-  bool has_height() const;
-  private:
-  bool _internal_has_height() const;
-  public:
   void clear_height();
   float height() const;
   void set_height(float value);
@@ -498,10 +484,9 @@
   template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
   typedef void InternalArenaConstructable_;
   typedef void DestructorSkippable_;
-  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
   float width_;
   float height_;
+  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
   friend struct ::TableStruct_gtx_2eproto;
 };
 // -------------------------------------------------------------------
@@ -542,6 +527,7 @@
   }
   static const Rect& default_instance();
 
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
   static inline const Rect* internal_default_instance() {
     return reinterpret_cast<const Rect*>(
                &_Rect_default_instance_);
@@ -664,10 +650,9 @@
   template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
   typedef void InternalArenaConstructable_;
   typedef void DestructorSkippable_;
-  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
   ::gtxilib::oopclasses::protos::Point* origin_;
   ::gtxilib::oopclasses::protos::Size* size_;
+  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
   friend struct ::TableStruct_gtx_2eproto;
 };
 // -------------------------------------------------------------------
@@ -708,6 +693,7 @@
   }
   static const ElementType& default_instance();
 
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
   static inline const ElementType* internal_default_instance() {
     return reinterpret_cast<const ElementType*>(
                &_ElementType_default_instance_);
@@ -1023,6 +1009,7 @@
   }
   static const UIElement& default_instance();
 
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
   static inline const UIElement* internal_default_instance() {
     return reinterpret_cast<const UIElement*>(
                &_UIElement_default_instance_);
@@ -1106,10 +1093,6 @@
     kAxElementTypeFieldNumber = 5,
   };
   // string ax_label = 3;
-  bool has_ax_label() const;
-  private:
-  bool _internal_has_ax_label() const;
-  public:
   void clear_ax_label();
   const std::string& ax_label() const;
   void set_ax_label(const std::string& value);
@@ -1144,10 +1127,6 @@
   ::gtxilib::oopclasses::protos::Rect* unsafe_arena_release_ax_frame();
 
   // uint64 ax_traits = 2;
-  bool has_ax_traits() const;
-  private:
-  bool _internal_has_ax_traits() const;
-  public:
   void clear_ax_traits();
   ::PROTOBUF_NAMESPACE_ID::uint64 ax_traits() const;
   void set_ax_traits(::PROTOBUF_NAMESPACE_ID::uint64 value);
@@ -1157,10 +1136,6 @@
   public:
 
   // bool is_ax_element = 1;
-  bool has_is_ax_element() const;
-  private:
-  bool _internal_has_is_ax_element() const;
-  public:
   void clear_is_ax_element();
   bool is_ax_element() const;
   void set_is_ax_element(bool value);
@@ -1170,10 +1145,6 @@
   public:
 
   // .gtxilib.oopclasses.protos.ElementType.ElementTypeEnum ax_element_type = 5;
-  bool has_ax_element_type() const;
-  private:
-  bool _internal_has_ax_element_type() const;
-  public:
   void clear_ax_element_type();
   ::gtxilib::oopclasses::protos::ElementType_ElementTypeEnum ax_element_type() const;
   void set_ax_element_type(::gtxilib::oopclasses::protos::ElementType_ElementTypeEnum value);
@@ -1189,13 +1160,12 @@
   template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
   typedef void InternalArenaConstructable_;
   typedef void DestructorSkippable_;
-  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
   ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr ax_label_;
   ::gtxilib::oopclasses::protos::Rect* ax_frame_;
   ::PROTOBUF_NAMESPACE_ID::uint64 ax_traits_;
   bool is_ax_element_;
   int ax_element_type_;
+  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
   friend struct ::TableStruct_gtx_2eproto;
 };
 // ===================================================================
@@ -1210,16 +1180,8 @@
 // Point
 
 // float x = 1;
-inline bool Point::_internal_has_x() const {
-  bool value = (_has_bits_[0] & 0x00000001u) != 0;
-  return value;
-}
-inline bool Point::has_x() const {
-  return _internal_has_x();
-}
 inline void Point::clear_x() {
   x_ = 0;
-  _has_bits_[0] &= ~0x00000001u;
 }
 inline float Point::_internal_x() const {
   return x_;
@@ -1229,7 +1191,7 @@
   return _internal_x();
 }
 inline void Point::_internal_set_x(float value) {
-  _has_bits_[0] |= 0x00000001u;
+  
   x_ = value;
 }
 inline void Point::set_x(float value) {
@@ -1238,16 +1200,8 @@
 }
 
 // float y = 2;
-inline bool Point::_internal_has_y() const {
-  bool value = (_has_bits_[0] & 0x00000002u) != 0;
-  return value;
-}
-inline bool Point::has_y() const {
-  return _internal_has_y();
-}
 inline void Point::clear_y() {
   y_ = 0;
-  _has_bits_[0] &= ~0x00000002u;
 }
 inline float Point::_internal_y() const {
   return y_;
@@ -1257,7 +1211,7 @@
   return _internal_y();
 }
 inline void Point::_internal_set_y(float value) {
-  _has_bits_[0] |= 0x00000002u;
+  
   y_ = value;
 }
 inline void Point::set_y(float value) {
@@ -1270,16 +1224,8 @@
 // Size
 
 // float width = 1;
-inline bool Size::_internal_has_width() const {
-  bool value = (_has_bits_[0] & 0x00000001u) != 0;
-  return value;
-}
-inline bool Size::has_width() const {
-  return _internal_has_width();
-}
 inline void Size::clear_width() {
   width_ = 0;
-  _has_bits_[0] &= ~0x00000001u;
 }
 inline float Size::_internal_width() const {
   return width_;
@@ -1289,7 +1235,7 @@
   return _internal_width();
 }
 inline void Size::_internal_set_width(float value) {
-  _has_bits_[0] |= 0x00000001u;
+  
   width_ = value;
 }
 inline void Size::set_width(float value) {
@@ -1298,16 +1244,8 @@
 }
 
 // float height = 2;
-inline bool Size::_internal_has_height() const {
-  bool value = (_has_bits_[0] & 0x00000002u) != 0;
-  return value;
-}
-inline bool Size::has_height() const {
-  return _internal_has_height();
-}
 inline void Size::clear_height() {
   height_ = 0;
-  _has_bits_[0] &= ~0x00000002u;
 }
 inline float Size::_internal_height() const {
   return height_;
@@ -1317,7 +1255,7 @@
   return _internal_height();
 }
 inline void Size::_internal_set_height(float value) {
-  _has_bits_[0] |= 0x00000002u;
+  
   height_ = value;
 }
 inline void Size::set_height(float value) {
@@ -1331,9 +1269,7 @@
 
 // .gtxilib.oopclasses.protos.Point origin = 1;
 inline bool Rect::_internal_has_origin() const {
-  bool value = (_has_bits_[0] & 0x00000001u) != 0;
-  PROTOBUF_ASSUME(!value || origin_ != nullptr);
-  return value;
+  return this != internal_default_instance() && origin_ != nullptr;
 }
 inline bool Rect::has_origin() const {
   return _internal_has_origin();
@@ -1343,12 +1279,11 @@
     delete origin_;
   }
   origin_ = nullptr;
-  _has_bits_[0] &= ~0x00000001u;
 }
 inline const ::gtxilib::oopclasses::protos::Point& Rect::_internal_origin() const {
   const ::gtxilib::oopclasses::protos::Point* p = origin_;
-  return p != nullptr ? *p : reinterpret_cast<const ::gtxilib::oopclasses::protos::Point&>(
-      ::gtxilib::oopclasses::protos::_Point_default_instance_);
+  return p != nullptr ? *p : *reinterpret_cast<const ::gtxilib::oopclasses::protos::Point*>(
+      &::gtxilib::oopclasses::protos::_Point_default_instance_);
 }
 inline const ::gtxilib::oopclasses::protos::Point& Rect::origin() const {
   // @@protoc_insertion_point(field_get:gtxilib.oopclasses.protos.Rect.origin)
@@ -1361,14 +1296,14 @@
   }
   origin_ = origin;
   if (origin) {
-    _has_bits_[0] |= 0x00000001u;
+    
   } else {
-    _has_bits_[0] &= ~0x00000001u;
+    
   }
   // @@protoc_insertion_point(field_unsafe_arena_set_allocated:gtxilib.oopclasses.protos.Rect.origin)
 }
 inline ::gtxilib::oopclasses::protos::Point* Rect::release_origin() {
-  _has_bits_[0] &= ~0x00000001u;
+  
   ::gtxilib::oopclasses::protos::Point* temp = origin_;
   origin_ = nullptr;
   if (GetArena() != nullptr) {
@@ -1378,13 +1313,13 @@
 }
 inline ::gtxilib::oopclasses::protos::Point* Rect::unsafe_arena_release_origin() {
   // @@protoc_insertion_point(field_release:gtxilib.oopclasses.protos.Rect.origin)
-  _has_bits_[0] &= ~0x00000001u;
+  
   ::gtxilib::oopclasses::protos::Point* temp = origin_;
   origin_ = nullptr;
   return temp;
 }
 inline ::gtxilib::oopclasses::protos::Point* Rect::_internal_mutable_origin() {
-  _has_bits_[0] |= 0x00000001u;
+  
   if (origin_ == nullptr) {
     auto* p = CreateMaybeMessage<::gtxilib::oopclasses::protos::Point>(GetArena());
     origin_ = p;
@@ -1407,9 +1342,9 @@
       origin = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
           message_arena, origin, submessage_arena);
     }
-    _has_bits_[0] |= 0x00000001u;
+    
   } else {
-    _has_bits_[0] &= ~0x00000001u;
+    
   }
   origin_ = origin;
   // @@protoc_insertion_point(field_set_allocated:gtxilib.oopclasses.protos.Rect.origin)
@@ -1417,9 +1352,7 @@
 
 // .gtxilib.oopclasses.protos.Size size = 2;
 inline bool Rect::_internal_has_size() const {
-  bool value = (_has_bits_[0] & 0x00000002u) != 0;
-  PROTOBUF_ASSUME(!value || size_ != nullptr);
-  return value;
+  return this != internal_default_instance() && size_ != nullptr;
 }
 inline bool Rect::has_size() const {
   return _internal_has_size();
@@ -1429,12 +1362,11 @@
     delete size_;
   }
   size_ = nullptr;
-  _has_bits_[0] &= ~0x00000002u;
 }
 inline const ::gtxilib::oopclasses::protos::Size& Rect::_internal_size() const {
   const ::gtxilib::oopclasses::protos::Size* p = size_;
-  return p != nullptr ? *p : reinterpret_cast<const ::gtxilib::oopclasses::protos::Size&>(
-      ::gtxilib::oopclasses::protos::_Size_default_instance_);
+  return p != nullptr ? *p : *reinterpret_cast<const ::gtxilib::oopclasses::protos::Size*>(
+      &::gtxilib::oopclasses::protos::_Size_default_instance_);
 }
 inline const ::gtxilib::oopclasses::protos::Size& Rect::size() const {
   // @@protoc_insertion_point(field_get:gtxilib.oopclasses.protos.Rect.size)
@@ -1447,14 +1379,14 @@
   }
   size_ = size;
   if (size) {
-    _has_bits_[0] |= 0x00000002u;
+    
   } else {
-    _has_bits_[0] &= ~0x00000002u;
+    
   }
   // @@protoc_insertion_point(field_unsafe_arena_set_allocated:gtxilib.oopclasses.protos.Rect.size)
 }
 inline ::gtxilib::oopclasses::protos::Size* Rect::release_size() {
-  _has_bits_[0] &= ~0x00000002u;
+  
   ::gtxilib::oopclasses::protos::Size* temp = size_;
   size_ = nullptr;
   if (GetArena() != nullptr) {
@@ -1464,13 +1396,13 @@
 }
 inline ::gtxilib::oopclasses::protos::Size* Rect::unsafe_arena_release_size() {
   // @@protoc_insertion_point(field_release:gtxilib.oopclasses.protos.Rect.size)
-  _has_bits_[0] &= ~0x00000002u;
+  
   ::gtxilib::oopclasses::protos::Size* temp = size_;
   size_ = nullptr;
   return temp;
 }
 inline ::gtxilib::oopclasses::protos::Size* Rect::_internal_mutable_size() {
-  _has_bits_[0] |= 0x00000002u;
+  
   if (size_ == nullptr) {
     auto* p = CreateMaybeMessage<::gtxilib::oopclasses::protos::Size>(GetArena());
     size_ = p;
@@ -1493,9 +1425,9 @@
       size = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
           message_arena, size, submessage_arena);
     }
-    _has_bits_[0] |= 0x00000002u;
+    
   } else {
-    _has_bits_[0] &= ~0x00000002u;
+    
   }
   size_ = size;
   // @@protoc_insertion_point(field_set_allocated:gtxilib.oopclasses.protos.Rect.size)
@@ -1510,16 +1442,8 @@
 // UIElement
 
 // bool is_ax_element = 1;
-inline bool UIElement::_internal_has_is_ax_element() const {
-  bool value = (_has_bits_[0] & 0x00000008u) != 0;
-  return value;
-}
-inline bool UIElement::has_is_ax_element() const {
-  return _internal_has_is_ax_element();
-}
 inline void UIElement::clear_is_ax_element() {
   is_ax_element_ = false;
-  _has_bits_[0] &= ~0x00000008u;
 }
 inline bool UIElement::_internal_is_ax_element() const {
   return is_ax_element_;
@@ -1529,7 +1453,7 @@
   return _internal_is_ax_element();
 }
 inline void UIElement::_internal_set_is_ax_element(bool value) {
-  _has_bits_[0] |= 0x00000008u;
+  
   is_ax_element_ = value;
 }
 inline void UIElement::set_is_ax_element(bool value) {
@@ -1538,16 +1462,8 @@
 }
 
 // uint64 ax_traits = 2;
-inline bool UIElement::_internal_has_ax_traits() const {
-  bool value = (_has_bits_[0] & 0x00000004u) != 0;
-  return value;
-}
-inline bool UIElement::has_ax_traits() const {
-  return _internal_has_ax_traits();
-}
 inline void UIElement::clear_ax_traits() {
   ax_traits_ = PROTOBUF_ULONGLONG(0);
-  _has_bits_[0] &= ~0x00000004u;
 }
 inline ::PROTOBUF_NAMESPACE_ID::uint64 UIElement::_internal_ax_traits() const {
   return ax_traits_;
@@ -1557,7 +1473,7 @@
   return _internal_ax_traits();
 }
 inline void UIElement::_internal_set_ax_traits(::PROTOBUF_NAMESPACE_ID::uint64 value) {
-  _has_bits_[0] |= 0x00000004u;
+  
   ax_traits_ = value;
 }
 inline void UIElement::set_ax_traits(::PROTOBUF_NAMESPACE_ID::uint64 value) {
@@ -1566,16 +1482,8 @@
 }
 
 // string ax_label = 3;
-inline bool UIElement::_internal_has_ax_label() const {
-  bool value = (_has_bits_[0] & 0x00000001u) != 0;
-  return value;
-}
-inline bool UIElement::has_ax_label() const {
-  return _internal_has_ax_label();
-}
 inline void UIElement::clear_ax_label() {
-  ax_label_.ClearToEmpty();
-  _has_bits_[0] &= ~0x00000001u;
+  ax_label_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
 }
 inline const std::string& UIElement::ax_label() const {
   // @@protoc_insertion_point(field_get:gtxilib.oopclasses.protos.UIElement.ax_label)
@@ -1593,45 +1501,42 @@
   return ax_label_.Get();
 }
 inline void UIElement::_internal_set_ax_label(const std::string& value) {
-  _has_bits_[0] |= 0x00000001u;
-  ax_label_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArena());
+  
+  ax_label_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
 }
 inline void UIElement::set_ax_label(std::string&& value) {
-  _has_bits_[0] |= 0x00000001u;
+  
   ax_label_.Set(
-    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::move(value), GetArena());
+    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
   // @@protoc_insertion_point(field_set_rvalue:gtxilib.oopclasses.protos.UIElement.ax_label)
 }
 inline void UIElement::set_ax_label(const char* value) {
   GOOGLE_DCHECK(value != nullptr);
-  _has_bits_[0] |= 0x00000001u;
-  ax_label_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(value), GetArena());
+  
+  ax_label_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
+              GetArena());
   // @@protoc_insertion_point(field_set_char:gtxilib.oopclasses.protos.UIElement.ax_label)
 }
 inline void UIElement::set_ax_label(const char* value,
     size_t size) {
-  _has_bits_[0] |= 0x00000001u;
-  ax_label_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(
+  
+  ax_label_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
       reinterpret_cast<const char*>(value), size), GetArena());
   // @@protoc_insertion_point(field_set_pointer:gtxilib.oopclasses.protos.UIElement.ax_label)
 }
 inline std::string* UIElement::_internal_mutable_ax_label() {
-  _has_bits_[0] |= 0x00000001u;
-  return ax_label_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArena());
+  
+  return ax_label_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
 }
 inline std::string* UIElement::release_ax_label() {
   // @@protoc_insertion_point(field_release:gtxilib.oopclasses.protos.UIElement.ax_label)
-  if (!_internal_has_ax_label()) {
-    return nullptr;
-  }
-  _has_bits_[0] &= ~0x00000001u;
-  return ax_label_.ReleaseNonDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
+  return ax_label_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
 }
 inline void UIElement::set_allocated_ax_label(std::string* ax_label) {
   if (ax_label != nullptr) {
-    _has_bits_[0] |= 0x00000001u;
+    
   } else {
-    _has_bits_[0] &= ~0x00000001u;
+    
   }
   ax_label_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ax_label,
       GetArena());
@@ -1640,9 +1545,7 @@
 
 // .gtxilib.oopclasses.protos.Rect ax_frame = 4;
 inline bool UIElement::_internal_has_ax_frame() const {
-  bool value = (_has_bits_[0] & 0x00000002u) != 0;
-  PROTOBUF_ASSUME(!value || ax_frame_ != nullptr);
-  return value;
+  return this != internal_default_instance() && ax_frame_ != nullptr;
 }
 inline bool UIElement::has_ax_frame() const {
   return _internal_has_ax_frame();
@@ -1652,12 +1555,11 @@
     delete ax_frame_;
   }
   ax_frame_ = nullptr;
-  _has_bits_[0] &= ~0x00000002u;
 }
 inline const ::gtxilib::oopclasses::protos::Rect& UIElement::_internal_ax_frame() const {
   const ::gtxilib::oopclasses::protos::Rect* p = ax_frame_;
-  return p != nullptr ? *p : reinterpret_cast<const ::gtxilib::oopclasses::protos::Rect&>(
-      ::gtxilib::oopclasses::protos::_Rect_default_instance_);
+  return p != nullptr ? *p : *reinterpret_cast<const ::gtxilib::oopclasses::protos::Rect*>(
+      &::gtxilib::oopclasses::protos::_Rect_default_instance_);
 }
 inline const ::gtxilib::oopclasses::protos::Rect& UIElement::ax_frame() const {
   // @@protoc_insertion_point(field_get:gtxilib.oopclasses.protos.UIElement.ax_frame)
@@ -1670,14 +1572,14 @@
   }
   ax_frame_ = ax_frame;
   if (ax_frame) {
-    _has_bits_[0] |= 0x00000002u;
+    
   } else {
-    _has_bits_[0] &= ~0x00000002u;
+    
   }
   // @@protoc_insertion_point(field_unsafe_arena_set_allocated:gtxilib.oopclasses.protos.UIElement.ax_frame)
 }
 inline ::gtxilib::oopclasses::protos::Rect* UIElement::release_ax_frame() {
-  _has_bits_[0] &= ~0x00000002u;
+  
   ::gtxilib::oopclasses::protos::Rect* temp = ax_frame_;
   ax_frame_ = nullptr;
   if (GetArena() != nullptr) {
@@ -1687,13 +1589,13 @@
 }
 inline ::gtxilib::oopclasses::protos::Rect* UIElement::unsafe_arena_release_ax_frame() {
   // @@protoc_insertion_point(field_release:gtxilib.oopclasses.protos.UIElement.ax_frame)
-  _has_bits_[0] &= ~0x00000002u;
+  
   ::gtxilib::oopclasses::protos::Rect* temp = ax_frame_;
   ax_frame_ = nullptr;
   return temp;
 }
 inline ::gtxilib::oopclasses::protos::Rect* UIElement::_internal_mutable_ax_frame() {
-  _has_bits_[0] |= 0x00000002u;
+  
   if (ax_frame_ == nullptr) {
     auto* p = CreateMaybeMessage<::gtxilib::oopclasses::protos::Rect>(GetArena());
     ax_frame_ = p;
@@ -1716,25 +1618,17 @@
       ax_frame = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
           message_arena, ax_frame, submessage_arena);
     }
-    _has_bits_[0] |= 0x00000002u;
+    
   } else {
-    _has_bits_[0] &= ~0x00000002u;
+    
   }
   ax_frame_ = ax_frame;
   // @@protoc_insertion_point(field_set_allocated:gtxilib.oopclasses.protos.UIElement.ax_frame)
 }
 
 // .gtxilib.oopclasses.protos.ElementType.ElementTypeEnum ax_element_type = 5;
-inline bool UIElement::_internal_has_ax_element_type() const {
-  bool value = (_has_bits_[0] & 0x00000010u) != 0;
-  return value;
-}
-inline bool UIElement::has_ax_element_type() const {
-  return _internal_has_ax_element_type();
-}
 inline void UIElement::clear_ax_element_type() {
   ax_element_type_ = 0;
-  _has_bits_[0] &= ~0x00000010u;
 }
 inline ::gtxilib::oopclasses::protos::ElementType_ElementTypeEnum UIElement::_internal_ax_element_type() const {
   return static_cast< ::gtxilib::oopclasses::protos::ElementType_ElementTypeEnum >(ax_element_type_);
@@ -1744,7 +1638,7 @@
   return _internal_ax_element_type();
 }
 inline void UIElement::_internal_set_ax_element_type(::gtxilib::oopclasses::protos::ElementType_ElementTypeEnum value) {
-  _has_bits_[0] |= 0x00000010u;
+  
   ax_element_type_ = value;
 }
 inline void UIElement::set_ax_element_type(::gtxilib::oopclasses::protos::ElementType_ElementTypeEnum value) {
diff --git a/OOPClasses/contrast_swatch.cc b/OOPClasses/contrast_swatch.cc
index 181c427..2f2eb14 100644
--- a/OOPClasses/contrast_swatch.cc
+++ b/OOPClasses/contrast_swatch.cc
@@ -53,7 +53,9 @@
   // accessing keys that dont exist may lead to creating the enties with count
   // 0.
   int64_t count = (int64_t)color_histogram.size();
-  for (auto const& [key, value] : color_histogram) {
+  for (auto& color : color_histogram) {
+    auto const& key = color.first;
+    auto const& value = color.second;
     if (value > color_histogram[top_key]) {
       penultimate_key = top_key;
       top_key = key;