diff --git a/examples/component/modal_dialog.cpp b/examples/component/modal_dialog.cpp
index aa58b4148f3ebc3c3c2ce45a07c604252ad8377f..c8cffe9d5233debcfa93b44ada9ff3b6eb7265b4 100644
--- a/examples/component/modal_dialog.cpp
+++ b/examples/component/modal_dialog.cpp
@@ -1,8 +1,8 @@
 #include <ftxui/component/component_options.hpp>  // for ButtonOption
+#include <ftxui/component/mouse.hpp>              // for ftxui
 #include <functional>                             // for function
 #include <memory>                                 // for allocator, shared_ptr
 
-#include "ftxui/component/captured_mouse.hpp"  // for ftxui
 #include "ftxui/component/component.hpp"  // for Button, operator|=, Renderer, Vertical, Modal
 #include "ftxui/component/screen_interactive.hpp"  // for ScreenInteractive, Component
 #include "ftxui/dom/elements.hpp"  // for operator|, separator, text, size, Element, vbox, border, GREATER_THAN, WIDTH, center, HEIGHT
diff --git a/iwyu.imp b/iwyu.imp
index ff946c19aa8c41a593e40c20dda05762b1ebda78..e637ddb5eaa53c7255534e61d12adf0a23d170e7 100644
--- a/iwyu.imp
+++ b/iwyu.imp
@@ -4,14 +4,22 @@
   { include: ["<bits/termios-struct.h>", "private", "<termios.h>", "public"]},
   { include: ["<bits/termios-tcflow.h>", "private", "<termios.h>", "public"]},
   { include: ["<ext/alloc_traits.h>", "private", "<vector>", "public"] },
-  { symbol: [ "ftxui", "private", "", "public" ] },
-  { symbol: [ "char_traits", "private", "<string>", "public" ] },
-  { symbol: [ "ECHO", "private", "<termios.h>", "public" ] },
-  { symbol: [ "ICANON", "private", "<termios.h>", "public" ] },
-  { symbol: [ "TCSANOW", "private", "<termios.h>", "public" ] },
-  { symbol: [ "VMIN", "private", "<termios.h>", "public" ] },
-  { symbol: [ "VTIME", "private", "<termios.h>", "public" ] },
-  { symbol: [ "__shared_ptr_access", "private", "<memory>", "public" ] },
-  { symbol: [ "termios", "private", "<termios.h>", "public" ] },
-  { symbol: ["__alloc_traits<>:value_type", "private", "<vector>", "public" ] },
+  { include: ["<gtest/internal/gtest-internal.h>", "private", "<gtest/gtest.h>", "public" ] },
+  { include: ["<gtest/internal/gtest-string.h>", "private", "<gtest/gtest.h>", "public" ] },
+  { include: ["<gtest/gtest-death-test.h>", "private", "<gtest/gtest.h>", "public" ] },
+  { include: ["<gtest/gtest-message.h>", "private", "<gtest/gtest.h>", "public" ] },
+  { include: ["<gtest/gtest-param-test.h>", "private", "<gtest/gtest.h>", "public" ] },
+  { include: ["<gtest/gtest-printers.h>", "private", "<gtest/gtest.h>", "public" ] },
+  { include: ["<gtest/gtest-test-part.h>", "private", "<gtest/gtest.h>", "public" ] },
+  { include: ["<gtest/gtest-typed-test.h>", "private", "<gtest/gtest.h>", "public" ] },
+  { symbol: ["ftxui", "private", "", "public" ] },
+  { symbol: ["char_traits", "private", "<string>", "public" ] },
+  { symbol: ["ECHO", "private", "<termios.h>", "public" ] },
+  { symbol: ["ICANON", "private", "<termios.h>", "public" ] },
+  { symbol: ["TCSANOW", "private", "<termios.h>", "public" ] },
+  { symbol: ["VMIN", "private", "<termios.h>", "public" ] },
+  { symbol: ["VTIME", "private", "<termios.h>", "public" ] },
+  { symbol: ["__shared_ptr_access", "private", "<memory>", "public" ] },
+  { symbol: ["termios", "private", "<termios.h>", "public" ] },
+  { symbol: ["__alloc_traits<>:value_type", "private", "<vector>", "public" ] }
 ]
diff --git a/src/ftxui/component/animation_test.cpp b/src/ftxui/component/animation_test.cpp
index 88fb6f4ea4cbd6bb5f45ba420460723b831a3cda..9a33ef52b5de4b85481e974df19924a774053088 100644
--- a/src/ftxui/component/animation_test.cpp
+++ b/src/ftxui/component/animation_test.cpp
@@ -1,10 +1,8 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for SuiteApiResolver, TestPartResult, TestFactoryImpl
-#include <functional>               // for function
-#include <vector>                   // for allocator, vector
+#include <gtest/gtest.h>
+#include <functional>  // for function
+#include <vector>      // for allocator, vector
 
 #include "ftxui/component/animation.hpp"  // for Function, BackIn, BackInOut, BackOut, BounceIn, BounceInOut, BounceOut, CircularIn, CircularInOut, CircularOut, CubicIn, CubicInOut, CubicOut, ElasticIn, ElasticInOut, ElasticOut, ExponentialIn, ExponentialInOut, ExponentialOut, Linear, QuadraticIn, QuadraticInOut, QuadraticOut, QuarticIn, QuarticInOut, QuarticOut, QuinticIn, QuinticInOut, QuinticOut, SineIn, SineInOut, SineOut
-#include "gtest/gtest_pred_impl.h"        // for Test, EXPECT_NEAR, TEST
 
 namespace ftxui {
 
diff --git a/src/ftxui/component/button_test.cpp b/src/ftxui/component/button_test.cpp
index 57dade2f1f85e167efa10ea0e422bb1e45da597e..df0403117a38c2bba04de6eb659876bf87931814 100644
--- a/src/ftxui/component/button_test.cpp
+++ b/src/ftxui/component/button_test.cpp
@@ -1,6 +1,5 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for TestPartResult, SuiteApiResolver, TestFactoryImpl
-#include <chrono>                   // for operator""s, chrono_literals
+#include <gtest/gtest.h>
+#include <chrono>  // for operator""s, chrono_literals
 #include <memory>  // for __shared_ptr_access, shared_ptr, allocator
 #include <string>  // for string
 
@@ -13,7 +12,6 @@
 #include "ftxui/dom/node.hpp"         // for Render
 #include "ftxui/screen/screen.hpp"    // for Screen
 #include "ftxui/screen/terminal.hpp"  // for SetColorSupport, Color, TrueColor
-#include "gtest/gtest_pred_impl.h"  // for AssertionResult, EXPECT_EQ, Test, EXPECT_FALSE, EXPECT_TRUE, TEST
 
 namespace ftxui {
 
diff --git a/src/ftxui/component/collapsible_test.cpp b/src/ftxui/component/collapsible_test.cpp
index 7eb7323a7841762670697661d3721c2a27b84313..bd1a970d0fd02387856f6c69ddfae11c10e3e244 100644
--- a/src/ftxui/component/collapsible_test.cpp
+++ b/src/ftxui/component/collapsible_test.cpp
@@ -1,5 +1,4 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for TestPartResult, SuiteApiResolver, TestFactoryImpl
+#include <gtest/gtest.h>
 #include <memory>  // for __shared_ptr_access, shared_ptr, allocator
 
 #include "ftxui/component/component.hpp"       // for Collapsible, Renderer
@@ -8,7 +7,6 @@
 #include "ftxui/dom/elements.hpp"     // for text, Element
 #include "ftxui/dom/node.hpp"         // for Render
 #include "ftxui/screen/screen.hpp"  // for Screen
-#include "gtest/gtest_pred_impl.h"  // for AssertionResult, Test, EXPECT_EQ, EXPECT_FALSE, EXPECT_TRUE, TEST
 
 namespace ftxui {
 
diff --git a/src/ftxui/component/component_test.cpp b/src/ftxui/component/component_test.cpp
index 52c888b894b967f84be532595db35b227d844b69..5a8b6aad53b56cc52b1f3f9392bc27cadb7a1465 100644
--- a/src/ftxui/component/component_test.cpp
+++ b/src/ftxui/component/component_test.cpp
@@ -1,10 +1,8 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for TestPartResult, SuiteApiResolver, TestFactoryImpl
+#include <gtest/gtest.h>
 #include <memory>  // for shared_ptr, __shared_ptr_access, allocator, __shared_ptr_access<>::element_type, make_shared
 
 #include "ftxui/component/component.hpp"       // for Make
 #include "ftxui/component/component_base.hpp"  // for ComponentBase, Component
-#include "gtest/gtest_pred_impl.h"  // for EXPECT_EQ, Test, AssertionResult, TEST, EXPECT_FALSE
 
 namespace ftxui {
 
diff --git a/src/ftxui/component/container_test.cpp b/src/ftxui/component/container_test.cpp
index b358a72174dbd40d3f5b70b810baa42bcdb7334f..6974c4803ac1132c0caff400d8f06c695b32f5cb 100644
--- a/src/ftxui/component/container_test.cpp
+++ b/src/ftxui/component/container_test.cpp
@@ -1,11 +1,9 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for TestPartResult, SuiteApiResolver, TestFactoryImpl
+#include <gtest/gtest.h>
 #include <memory>  // for __shared_ptr_access, shared_ptr, allocator
 
 #include "ftxui/component/component.hpp"  // for Horizontal, Vertical, Button, Tab
 #include "ftxui/component/component_base.hpp"  // for ComponentBase, Component
 #include "ftxui/component/event.hpp"  // for Event, Event::Tab, Event::TabReverse, Event::ArrowDown, Event::ArrowLeft, Event::ArrowRight, Event::ArrowUp
-#include "gtest/gtest_pred_impl.h"  // for AssertionResult, EXPECT_EQ, EXPECT_FALSE, EXPECT_TRUE, Test, TEST
 
 namespace ftxui {
 
diff --git a/src/ftxui/component/input_test.cpp b/src/ftxui/component/input_test.cpp
index 635a9fc8a8207df8150152ea23c55d367238392a..21d8fddf68786d84e4e36223cd81d3cfb1de2302 100644
--- a/src/ftxui/component/input_test.cpp
+++ b/src/ftxui/component/input_test.cpp
@@ -1,5 +1,4 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for TestPartResult, SuiteApiResolver, TestFactoryImpl
+#include <gtest/gtest.h>
 #include <memory>  // for __shared_ptr_access, shared_ptr, allocator
 #include <string>  // for string
 
@@ -12,7 +11,6 @@
 #include "ftxui/dom/node.hpp"       // for Render
 #include "ftxui/screen/screen.hpp"  // for Fixed, Screen, Pixel
 #include "ftxui/util/ref.hpp"       // for Ref
-#include "gtest/gtest_pred_impl.h"  // for EXPECT_EQ, Test, TEST
 
 namespace ftxui {
 
diff --git a/src/ftxui/component/menu_test.cpp b/src/ftxui/component/menu_test.cpp
index 05d5aff22ebe2324d24a4bc4d84a47c345d3dac9..daf69d616c2fca82ff00a411a053032c87b3f9c6 100644
--- a/src/ftxui/component/menu_test.cpp
+++ b/src/ftxui/component/menu_test.cpp
@@ -1,6 +1,5 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for TestPartResult, SuiteApiResolver, TestFactoryImpl
-#include <chrono>                   // for operator""s, chrono_literals
+#include <gtest/gtest.h>
+#include <chrono>  // for operator""s, chrono_literals
 #include <memory>  // for __shared_ptr_access, shared_ptr, allocator
 #include <string>  // for string
 #include <vector>  // for vector
@@ -13,7 +12,6 @@
 #include "ftxui/dom/node.hpp"         // for Render
 #include "ftxui/screen/screen.hpp"    // for Screen
 #include "ftxui/util/ref.hpp"         // for Ref
-#include "gtest/gtest_pred_impl.h"    // for EXPECT_EQ, Test, TEST
 
 namespace ftxui {
 
diff --git a/src/ftxui/component/modal_test.cpp b/src/ftxui/component/modal_test.cpp
index 92320bccc4e92924bf6531d8425c87ffd7ce13e0..26b9a6c45e0cf63a643c42371cd7ba417c2e11a0 100644
--- a/src/ftxui/component/modal_test.cpp
+++ b/src/ftxui/component/modal_test.cpp
@@ -1,5 +1,4 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for SuiteApiResolver, TestPartResult, TestFactoryImpl
+#include <gtest/gtest.h>
 #include <ftxui/dom/elements.hpp>  // for Element, operator|, text, border
 #include <memory>  // for shared_ptr, allocator, __shared_ptr_access
 
@@ -7,7 +6,6 @@
 #include "ftxui/component/component_base.hpp"  // for ComponentBase
 #include "ftxui/dom/node.hpp"                  // for Render
 #include "ftxui/screen/screen.hpp"             // for Screen
-#include "gtest/gtest_pred_impl.h"             // for Test, EXPECT_EQ, TEST
 
 namespace ftxui {
 
diff --git a/src/ftxui/component/radiobox_test.cpp b/src/ftxui/component/radiobox_test.cpp
index d8863f5896233f6beac75c9c0109a9a6b4b666c4..ee9d12b83786b8b1620b1ba13469d2d406e9540e 100644
--- a/src/ftxui/component/radiobox_test.cpp
+++ b/src/ftxui/component/radiobox_test.cpp
@@ -1,5 +1,4 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for TestPartResult, SuiteApiResolver, TestFactoryImpl
+#include <gtest/gtest.h>
 #include <memory>  // for __shared_ptr_access, shared_ptr, allocator
 #include <string>  // for string
 #include <vector>  // for vector
@@ -9,7 +8,6 @@
 #include "ftxui/component/component_options.hpp"  // for RadioboxOption
 #include "ftxui/component/event.hpp"  // for Event, Event::Return, Event::ArrowDown, Event::ArrowUp, Event::Tab, Event::TabReverse
 #include "ftxui/util/ref.hpp"         // for Ref
-#include "gtest/gtest_pred_impl.h"    // for EXPECT_EQ, Test, TEST
 
 namespace ftxui {
 
diff --git a/src/ftxui/component/receiver_test.cpp b/src/ftxui/component/receiver_test.cpp
index a327ac8c3a54f9810b8a73a2dc5c720c0e004ec8..50fb07d11058caa4c3d2b3bb17a4da96df6efff7 100644
--- a/src/ftxui/component/receiver_test.cpp
+++ b/src/ftxui/component/receiver_test.cpp
@@ -1,10 +1,8 @@
-#include <gtest/gtest-message.h>    // for Message
-#include <gtest/gtest-test-part.h>  // for TestPartResult
-#include <thread>                   // for thread
-#include <utility>                  // for move
+#include <gtest/gtest.h>
+#include <thread>   // for thread
+#include <utility>  // for move
 
 #include "ftxui/component/receiver.hpp"
-#include "gtest/gtest_pred_impl.h"  // for AssertionResult, Test, EXPECT_EQ
 
 namespace ftxui {
 
diff --git a/src/ftxui/component/resizable_split_test.cpp b/src/ftxui/component/resizable_split_test.cpp
index 28595bab97a64de286c3d5df82faae452483eaea..3716148cb3ef9154fb6c58e88dbc1b0d527068b5 100644
--- a/src/ftxui/component/resizable_split_test.cpp
+++ b/src/ftxui/component/resizable_split_test.cpp
@@ -1,5 +1,4 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for TestPartResult, SuiteApiResolver, TestFactoryImpl
+#include <gtest/gtest.h>
 #include <memory>  // for __shared_ptr_access, shared_ptr, allocator
 
 #include "ftxui/component/component.hpp"  // for Renderer, ResizableSplitBottom, ResizableSplitLeft, ResizableSplitRight, ResizableSplitTop
@@ -9,7 +8,6 @@
 #include "ftxui/dom/elements.hpp"   // for text, Element
 #include "ftxui/dom/node.hpp"       // for Render
 #include "ftxui/screen/screen.hpp"  // for Screen
-#include "gtest/gtest_pred_impl.h"  // for AssertionResult, Test, EXPECT_EQ, EXPECT_TRUE, TEST
 
 namespace ftxui {
 
diff --git a/src/ftxui/component/screen_interactive_test.cpp b/src/ftxui/component/screen_interactive_test.cpp
index 63b1aeefa2438f7da9fd256e10b3cd8d66cb83e9..4dd65776d61b9b17cb2e0d4edcf852a4a17c99e0 100644
--- a/src/ftxui/component/screen_interactive_test.cpp
+++ b/src/ftxui/component/screen_interactive_test.cpp
@@ -1,12 +1,10 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for SuiteApiResolver, TestFactoryImpl, TestPartResult
+#include <gtest/gtest.h>
 #include <csignal>  // for raise, SIGABRT, SIGFPE, SIGILL, SIGINT, SIGSEGV, SIGTERM
 #include <ftxui/component/event.hpp>  // for Event, Event::Custom
 
 #include "ftxui/component/component.hpp"  // for Renderer
 #include "ftxui/component/screen_interactive.hpp"
-#include "ftxui/dom/elements.hpp"   // for text, Element
-#include "gtest/gtest_pred_impl.h"  // for Test, TEST, EXPECT_EQ
+#include "ftxui/dom/elements.hpp"  // for text, Element
 
 namespace ftxui {
 
diff --git a/src/ftxui/component/terminal_input_parser_test.cpp b/src/ftxui/component/terminal_input_parser_test.cpp
index 679962c8c9e9adb285b79c7906770160cd0ee94f..24f611d4f31f5116e5dfb5e9904675888d33e679 100644
--- a/src/ftxui/component/terminal_input_parser_test.cpp
+++ b/src/ftxui/component/terminal_input_parser_test.cpp
@@ -1,6 +1,4 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for TestPartResult, SuiteApiResolver, TestFactoryImpl
-#include <algorithm>                // for max
+#include <gtest/gtest.h>  // for AssertionResult, Test, Message, TestPartResult, SuiteApiResolver, TestInfo (ptr only), EXPECT_EQ, EXPECT_TRUE, TEST, TestFactoryImpl, EXPECT_FALSE
 #include <ftxui/component/mouse.hpp>  // for Mouse, Mouse::Left, Mouse::Middle, Mouse::Pressed, Mouse::Released, Mouse::Right
 #include <ftxui/component/task.hpp>   // for Task
 #include <initializer_list>           // for initializer_list
@@ -10,7 +8,6 @@
 #include "ftxui/component/event.hpp"  // for Event, Event::Return, Event::ArrowDown, Event::ArrowLeft, Event::ArrowRight, Event::ArrowUp, Event::Backspace, Event::Custom, Event::Delete, Event::End, Event::F10, Event::F11, Event::F12, Event::F5, Event::F6, Event::F7, Event::F8, Event::F9, Event::Home, Event::PageDown, Event::PageUp, Event::Tab, Event::TabReverse, Event::Escape
 #include "ftxui/component/receiver.hpp"  // for MakeReceiver, ReceiverImpl
 #include "ftxui/component/terminal_input_parser.hpp"
-#include "gtest/gtest_pred_impl.h"  // for AssertionResult, Test, EXPECT_EQ, EXPECT_TRUE, TEST, EXPECT_FALSE
 
 namespace ftxui {
 
diff --git a/src/ftxui/component/terminal_input_parser_test_fuzzer.cpp b/src/ftxui/component/terminal_input_parser_test_fuzzer.cpp
index 6aa942205837d5445ea49e0c1e2b2a5b1703d2fe..870a3035d9f261340704ebdeda0fd29f7aa2ba6b 100644
--- a/src/ftxui/component/terminal_input_parser_test_fuzzer.cpp
+++ b/src/ftxui/component/terminal_input_parser_test_fuzzer.cpp
@@ -1,5 +1,3 @@
-//#include "ftxui/component/event.hpp"
-//#include "ftxui/component/receiver.hpp"
 #include <vector>
 #include "ftxui/component/terminal_input_parser.hpp"
 
diff --git a/src/ftxui/component/toggle_test.cpp b/src/ftxui/component/toggle_test.cpp
index f4071c19c51fbb8d5c47c3ec2e8ad80f910657b6..51521895c58660c18b9ffcfccc9bb229eda6d792 100644
--- a/src/ftxui/component/toggle_test.cpp
+++ b/src/ftxui/component/toggle_test.cpp
@@ -1,9 +1,8 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for TestPartResult, SuiteApiResolver, TestFactoryImpl
-#include <functional>               // for function
-#include <memory>  // for __shared_ptr_access, shared_ptr, allocator
-#include <string>  // for string, basic_string
-#include <vector>  // for vector
+#include <gtest/gtest.h>
+#include <functional>  // for function
+#include <memory>      // for __shared_ptr_access, shared_ptr, allocator
+#include <string>      // for string, basic_string
+#include <vector>      // for vector
 
 #include "ftxui/component/captured_mouse.hpp"     // for ftxui
 #include "ftxui/component/component.hpp"          // for Toggle
@@ -11,7 +10,6 @@
 #include "ftxui/component/component_options.hpp"  // for ToggleOption
 #include "ftxui/component/event.hpp"  // for Event, Event::ArrowLeft, Event::ArrowRight, Event::Return, Event::Tab, Event::TabReverse
 #include "ftxui/util/ref.hpp"         // for Ref
-#include "gtest/gtest_pred_impl.h"  // for AssertionResult, EXPECT_EQ, Test, EXPECT_TRUE, EXPECT_FALSE, TEST
 
 using namespace ftxui;
 
diff --git a/src/ftxui/dom/blink_test.cpp b/src/ftxui/dom/blink_test.cpp
index 8bbe423403255bd26f6ce5677f11368bf4709e13..7b7207fc7d4d0dd3b331019b212db4939377f687 100644
--- a/src/ftxui/dom/blink_test.cpp
+++ b/src/ftxui/dom/blink_test.cpp
@@ -1,6 +1,4 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for SuiteApiResolver, TestFactoryImpl, TestPartResult
-#include <gtest/gtest.h>  // for Test, AssertionResult, TestInfo (ptr only), EXPECT_TRUE, TEST
+#include <gtest/gtest.h>
 #include <string>  // for allocator
 
 #include "ftxui/dom/elements.hpp"   // for operator|, text, blink, Element
diff --git a/src/ftxui/dom/bold_test.cpp b/src/ftxui/dom/bold_test.cpp
index fac4431a76a9645055d441cb51cd64a953668001..340ba499851867cfcdc11c2923dc33b88c65d23b 100644
--- a/src/ftxui/dom/bold_test.cpp
+++ b/src/ftxui/dom/bold_test.cpp
@@ -1,6 +1,4 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for SuiteApiResolver, TestFactoryImpl, TestPartResult
-#include <gtest/gtest.h>  // for Test, AssertionResult, TestInfo (ptr only), EXPECT_TRUE, TEST
+#include <gtest/gtest.h>
 #include <string>  // for allocator
 
 #include "ftxui/dom/elements.hpp"   // for operator|, text, bold, Element
diff --git a/src/ftxui/dom/border_test.cpp b/src/ftxui/dom/border_test.cpp
index e6ff25e80dc85e805a57647dd3bb8ffe773ec99d..07435720b5361c28d5dae74f3ac81ea4b5c89b0e 100644
--- a/src/ftxui/dom/border_test.cpp
+++ b/src/ftxui/dom/border_test.cpp
@@ -1,11 +1,9 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for SuiteApiResolver, TestFactoryImpl, TestPartResult
-#include <string>                   // for allocator, string
+#include <gtest/gtest.h>
+#include <string>  // for allocator, string
 
 #include "ftxui/dom/elements.hpp"  // for text, operator|, Element, borderStyled, borderWith, window, border, borderDouble, borderEmpty, borderHeavy, borderLight, borderRounded, DOUBLE
 #include "ftxui/dom/node.hpp"      // for Render
 #include "ftxui/screen/screen.hpp"  // for Screen, Pixel
-#include "gtest/gtest_pred_impl.h"  // for Test, EXPECT_EQ, TEST
 
 namespace ftxui {
 
diff --git a/src/ftxui/dom/canvas_test.cpp b/src/ftxui/dom/canvas_test.cpp
index 3c890c9c2848af52e0ad1265be363aa7d851677b..1f8180c79a4460e79cf4df6131ee90a8c9100ec0 100644
--- a/src/ftxui/dom/canvas_test.cpp
+++ b/src/ftxui/dom/canvas_test.cpp
@@ -1,7 +1,6 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for SuiteApiResolver, TestFactoryImpl, TestPartResult
-#include <stdint.h>                 // for uint32_t
-#include <string>                   // for allocator, string
+#include <gtest/gtest.h>
+#include <stdint.h>  // for uint32_t
+#include <string>    // for allocator, string
 
 #include "ftxui/dom/canvas.hpp"    // for Canvas
 #include "ftxui/dom/elements.hpp"  // for canvas
@@ -9,7 +8,6 @@
 #include "ftxui/screen/color.hpp"  // for Color, Color::Black, Color::Blue, Color::Red, Color::White, Color::Yellow, Color::Cyan, Color::Green
 #include "ftxui/screen/screen.hpp"    // for Screen
 #include "ftxui/screen/terminal.hpp"  // for SetColorSupport, Color, TrueColor
-#include "gtest/gtest_pred_impl.h"    // for Test, EXPECT_EQ, TEST
 
 namespace ftxui {
 
diff --git a/src/ftxui/dom/color_test.cpp b/src/ftxui/dom/color_test.cpp
index 2c772d63bf2acbbbdb26e56b7cbe8c57617badc7..0ff72c35623ec33ab00e82ca291b23a94cfa7872 100644
--- a/src/ftxui/dom/color_test.cpp
+++ b/src/ftxui/dom/color_test.cpp
@@ -1,12 +1,10 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for SuiteApiResolver, TestPartResult, TestFactoryImpl
-#include <string>                   // for allocator
+#include <gtest/gtest.h>
+#include <string>  // for allocator
 
 #include "ftxui/dom/elements.hpp"  // for operator|, text, bgcolor, color, Element
 #include "ftxui/dom/node.hpp"      // for Render
 #include "ftxui/screen/color.hpp"   // for Color, Color::Red
 #include "ftxui/screen/screen.hpp"  // for Screen, Pixel
-#include "gtest/gtest_pred_impl.h"  // for Test, EXPECT_EQ, TEST
 
 namespace ftxui {
 
diff --git a/src/ftxui/dom/dbox_test.cpp b/src/ftxui/dom/dbox_test.cpp
index d12871e78ce377e392356ba4de932567931625c9..a12a625dacfdda14ca1a7f693f42cc285bd34fca 100644
--- a/src/ftxui/dom/dbox_test.cpp
+++ b/src/ftxui/dom/dbox_test.cpp
@@ -1,11 +1,9 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for SuiteApiResolver, TestFactoryImpl, TestPartResult
-#include <string>                   // for allocator
+#include <gtest/gtest.h>
+#include <string>  // for allocator
 
 #include "ftxui/dom/elements.hpp"  // for filler, operator|, text, border, dbox, hbox, vbox, Element
 #include "ftxui/dom/node.hpp"       // for Render
 #include "ftxui/screen/screen.hpp"  // for Screen
-#include "gtest/gtest_pred_impl.h"  // for Test, EXPECT_EQ, TEST
 
 namespace ftxui {
 
diff --git a/src/ftxui/dom/dim_test.cpp b/src/ftxui/dom/dim_test.cpp
index 312c1fe0919011f40a68625b82c758b0fe613d97..811fe3a14ce47bbddf9cc98a71f37f8ae515e831 100644
--- a/src/ftxui/dom/dim_test.cpp
+++ b/src/ftxui/dom/dim_test.cpp
@@ -1,6 +1,4 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for SuiteApiResolver, TestFactoryImpl, TestPartResult
-#include <gtest/gtest.h>  // for Test, AssertionResult, TestInfo (ptr only), EXPECT_TRUE, TEST
+#include <gtest/gtest.h>
 #include <string>  // for allocator
 
 #include "ftxui/dom/elements.hpp"   // for operator|, text, dim, Element
diff --git a/src/ftxui/dom/flexbox_helper_test.cpp b/src/ftxui/dom/flexbox_helper_test.cpp
index 5f74562d4c28174159a2c5378203be90947e5e8c..ab3f55022b4d430c9f694110d7345dbb4957bfa2 100644
--- a/src/ftxui/dom/flexbox_helper_test.cpp
+++ b/src/ftxui/dom/flexbox_helper_test.cpp
@@ -1,10 +1,8 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for TestPartResult, SuiteApiResolver, TestFactoryImpl
+#include <gtest/gtest.h>
 #include <ftxui/dom/flexbox_config.hpp>  // for FlexboxConfig, FlexboxConfig::Direction, FlexboxConfig::Direction::Column, FlexboxConfig::Direction::ColumnInversed, FlexboxConfig::Direction::Row, FlexboxConfig::Direction::RowInversed
 #include <memory>                        // for allocator_traits<>::value_type
 
 #include "ftxui/dom/flexbox_helper.hpp"
-#include "gtest/gtest_pred_impl.h"  // for EXPECT_EQ, Test, TEST
 
 namespace ftxui {
 
diff --git a/src/ftxui/dom/flexbox_test.cpp b/src/ftxui/dom/flexbox_test.cpp
index 5925211660ae7f6bc58079f3af1a1fa622c2a907..31535ac92f71671ecb99e6c5bc28433335d684ab 100644
--- a/src/ftxui/dom/flexbox_test.cpp
+++ b/src/ftxui/dom/flexbox_test.cpp
@@ -1,12 +1,10 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for SuiteApiResolver, TestFactoryImpl, TestPartResult
-#include <string>                   // for allocator
+#include <gtest/gtest.h>
+#include <string>  // for allocator
 
 #include "ftxui/dom/elements.hpp"        // for text, flexbox
 #include "ftxui/dom/flexbox_config.hpp"  // for FlexboxConfig, FlexboxConfig::Direction, FlexboxConfig::AlignContent, FlexboxConfig::JustifyContent, FlexboxConfig::Direction::Column, FlexboxConfig::AlignItems, FlexboxConfig::JustifyContent::SpaceAround, FlexboxConfig::AlignContent::Center, FlexboxConfig::AlignContent::FlexEnd, FlexboxConfig::AlignContent::SpaceAround, FlexboxConfig::AlignContent::SpaceBetween, FlexboxConfig::AlignContent::SpaceEvenly, FlexboxConfig::AlignItems::Center, FlexboxConfig::AlignItems::FlexEnd, FlexboxConfig::Direction::ColumnInversed, FlexboxConfig::Direction::Row, FlexboxConfig::Direction::RowInversed, FlexboxConfig::JustifyContent::Center, FlexboxConfig::JustifyContent::SpaceBetween
 #include "ftxui/dom/node.hpp"            // for Render
 #include "ftxui/screen/screen.hpp"       // for Screen
-#include "gtest/gtest_pred_impl.h"       // for Test, EXPECT_EQ, TEST
 
 namespace ftxui {
 
diff --git a/src/ftxui/dom/gauge_test.cpp b/src/ftxui/dom/gauge_test.cpp
index e8a8b9d5917124f7ef8184ec05a4e95baa9686fe..b240ae0447af835303a2defad9288d978ed4ecfa 100644
--- a/src/ftxui/dom/gauge_test.cpp
+++ b/src/ftxui/dom/gauge_test.cpp
@@ -1,11 +1,9 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for SuiteApiResolver, TestFactoryImpl, TestPartResult
-#include <memory>                   // for allocator
+#include <gtest/gtest.h>
+#include <memory>  // for allocator
 
 #include "ftxui/dom/elements.hpp"   // for gauge, gaugeUp
 #include "ftxui/dom/node.hpp"       // for Render
 #include "ftxui/screen/screen.hpp"  // for Screen
-#include "gtest/gtest_pred_impl.h"  // for Test, EXPECT_EQ, TEST
 
 namespace ftxui {
 
diff --git a/src/ftxui/dom/gridbox_test.cpp b/src/ftxui/dom/gridbox_test.cpp
index 3e67c2521eb8e1a3cf17059d9d9764038aa90cda..17aad9b6658cc25b76348cc216fa11397908e20f 100644
--- a/src/ftxui/dom/gridbox_test.cpp
+++ b/src/ftxui/dom/gridbox_test.cpp
@@ -1,15 +1,13 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for SuiteApiResolver, TestFactoryImpl, TestPartResult
-#include <stddef.h>                 // for size_t
-#include <algorithm>                // for remove
-#include <memory>                   // for shared_ptr
-#include <string>                   // for allocator, basic_string, string
-#include <vector>                   // for vector
+#include <gtest/gtest.h>
+#include <stddef.h>   // for size_t
+#include <algorithm>  // for remove
+#include <memory>     // for shared_ptr
+#include <string>     // for allocator, basic_string, string
+#include <vector>     // for vector
 
 #include "ftxui/dom/elements.hpp"  // for text, operator|, Element, flex, Elements, flex_grow, flex_shrink, vtext, gridbox, vbox, focus, operator|=, border, frame
 #include "ftxui/dom/node.hpp"      // for Render
 #include "ftxui/screen/screen.hpp"  // for Screen
-#include "gtest/gtest_pred_impl.h"  // for Test, TEST, EXPECT_EQ
 
 namespace ftxui {
 
diff --git a/src/ftxui/dom/hbox_test.cpp b/src/ftxui/dom/hbox_test.cpp
index f78a81301e5aed895ab41fcf2d0abab88fc0627e..17dfd2db5e48da2cdb0fc9fb42a1472826f83e76 100644
--- a/src/ftxui/dom/hbox_test.cpp
+++ b/src/ftxui/dom/hbox_test.cpp
@@ -1,14 +1,12 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for SuiteApiResolver, TestFactoryImpl, TestPartResult
-#include <stddef.h>                 // for size_t
-#include <string>                   // for string, allocator
-#include <vector>                   // for vector
+#include <gtest/gtest.h>
+#include <stddef.h>  // for size_t
+#include <string>    // for string, allocator
+#include <vector>    // for vector
 
 #include "ftxui/dom/elements.hpp"  // for text, operator|, hbox, Element, flex_grow, flex_shrink
 #include "ftxui/dom/node.hpp"       // for Render
 #include "ftxui/screen/color.hpp"   // for ftxui
 #include "ftxui/screen/screen.hpp"  // for Screen
-#include "gtest/gtest_pred_impl.h"  // for Test, EXPECT_EQ, TEST
 
 using namespace ftxui;
 using namespace ftxui;
diff --git a/src/ftxui/dom/scroll_indicator_test.cpp b/src/ftxui/dom/scroll_indicator_test.cpp
index 665ec758e5ccaf9ecd97c7349ae3bbd22d84c7e3..5747c21d3f91293f2af2c13d46c0b5b0cc414229 100644
--- a/src/ftxui/dom/scroll_indicator_test.cpp
+++ b/src/ftxui/dom/scroll_indicator_test.cpp
@@ -1,13 +1,11 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for TestPartResult, SuiteApiResolver, TestFactoryImpl
-#include <memory>                   // for shared_ptr
-#include <string>                   // for allocator, to_string, string
-#include <utility>                  // for move
+#include <gtest/gtest.h>
+#include <memory>   // for shared_ptr
+#include <string>   // for allocator, to_string, string
+#include <utility>  // for move
 
 #include "ftxui/dom/elements.hpp"  // for operator|, Element, operator|=, text, vbox, Elements, border, focus, frame, vscroll_indicator
 #include "ftxui/dom/node.hpp"      // for Render
 #include "ftxui/screen/screen.hpp"  // for Screen
-#include "gtest/gtest_pred_impl.h"  // for EXPECT_EQ, Test, TEST
 
 namespace ftxui {
 
diff --git a/src/ftxui/dom/separator_test.cpp b/src/ftxui/dom/separator_test.cpp
index fe3f51caa8938b8fa8e0e1297e75037bb7d55630..ffb4c14dcd459bc16a26c6c79cac42e456f28d07 100644
--- a/src/ftxui/dom/separator_test.cpp
+++ b/src/ftxui/dom/separator_test.cpp
@@ -1,11 +1,9 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for SuiteApiResolver, TestFactoryImpl, TestPartResult
-#include <string>                   // for allocator, string
+#include <gtest/gtest.h>
+#include <string>  // for allocator, string
 
 #include "ftxui/dom/elements.hpp"  // for text, vbox, separator, separatorDouble, separatorEmpty, separatorHeavy, separatorLight, separatorStyled, DOUBLE
 #include "ftxui/dom/node.hpp"      // for Render
 #include "ftxui/screen/screen.hpp"  // for Screen, Pixel
-#include "gtest/gtest_pred_impl.h"  // for Test, EXPECT_EQ, TEST
 
 namespace ftxui {
 
diff --git a/src/ftxui/dom/spinner_test.cpp b/src/ftxui/dom/spinner_test.cpp
index d7769310081e4b04c17461bbcffc5333e8e5b95c..d65c066064f633d83bc239f37023b39556ab7847 100644
--- a/src/ftxui/dom/spinner_test.cpp
+++ b/src/ftxui/dom/spinner_test.cpp
@@ -1,11 +1,9 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for SuiteApiResolver, TestFactoryImpl, TestPartResult
-#include <string>                   // for allocator
+#include <gtest/gtest.h>
+#include <string>  // for allocator
 
 #include "ftxui/dom/elements.hpp"   // for spinner
 #include "ftxui/dom/node.hpp"       // for Render
 #include "ftxui/screen/screen.hpp"  // for Screen
-#include "gtest/gtest_pred_impl.h"  // for Test, EXPECT_EQ, TEST
 
 namespace ftxui {
 
diff --git a/src/ftxui/dom/table_test.cpp b/src/ftxui/dom/table_test.cpp
index c9b28c3b264da03679e9cf2bfbfe51370340a4d1..3313923ebb8352f5c20669c7a60d2685c639c0d0 100644
--- a/src/ftxui/dom/table_test.cpp
+++ b/src/ftxui/dom/table_test.cpp
@@ -1,12 +1,10 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for SuiteApiResolver, TestFactoryImpl, TestPartResult
-#include <memory>                   // for allocator
+#include <gtest/gtest.h>
+#include <memory>  // for allocator
 
 #include "ftxui/dom/elements.hpp"  // for LIGHT, flex, center, EMPTY, DOUBLE
 #include "ftxui/dom/node.hpp"      // for Render
 #include "ftxui/dom/table.hpp"
 #include "ftxui/screen/screen.hpp"  // for Screen
-#include "gtest/gtest_pred_impl.h"  // for Test, EXPECT_EQ, TEST
 
 namespace ftxui {
 
diff --git a/src/ftxui/dom/text_test.cpp b/src/ftxui/dom/text_test.cpp
index 50f24bfebd6e8bf5bac3cbd27b65d88f11b3dd77..cfa199e2e35883d5de47de0f2e18db9dca7f563d 100644
--- a/src/ftxui/dom/text_test.cpp
+++ b/src/ftxui/dom/text_test.cpp
@@ -1,11 +1,9 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for SuiteApiResolver, TestFactoryImpl, TestPartResult
-#include <string>                   // for allocator, string
+#include <gtest/gtest.h>
+#include <string>  // for allocator, string
 
 #include "ftxui/dom/elements.hpp"   // for text, operator|, border, Element
 #include "ftxui/dom/node.hpp"       // for Render
 #include "ftxui/screen/screen.hpp"  // for Screen
-#include "gtest/gtest_pred_impl.h"  // for Test, EXPECT_EQ, TEST
 
 namespace ftxui {
 
diff --git a/src/ftxui/dom/underlined_test.cpp b/src/ftxui/dom/underlined_test.cpp
index 0c7134143b318095568413fa1eea827e8d4189c8..50b93094c4d975bbac49d3ce93232291b485ac5c 100644
--- a/src/ftxui/dom/underlined_test.cpp
+++ b/src/ftxui/dom/underlined_test.cpp
@@ -1,6 +1,4 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for SuiteApiResolver, TestFactoryImpl, TestPartResult
-#include <gtest/gtest.h>  // for Test, AssertionResult, TestInfo (ptr only), EXPECT_TRUE, TEST
+#include <gtest/gtest.h>
 #include <string>  // for allocator
 
 #include "ftxui/dom/elements.hpp"   // for operator|, text, underlined, Element
diff --git a/src/ftxui/dom/vbox_test.cpp b/src/ftxui/dom/vbox_test.cpp
index aca59a801d23697a2b1d35c57770906f88c0b3f0..09780d040cdd21e188bc69d1cd0e022ff695ea30 100644
--- a/src/ftxui/dom/vbox_test.cpp
+++ b/src/ftxui/dom/vbox_test.cpp
@@ -1,14 +1,12 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for SuiteApiResolver, TestFactoryImpl, TestPartResult
-#include <stddef.h>                 // for size_t
-#include <algorithm>                // for remove
-#include <string>                   // for string, allocator, basic_string
-#include <vector>                   // for vector
+#include <gtest/gtest.h>
+#include <stddef.h>   // for size_t
+#include <algorithm>  // for remove
+#include <string>     // for string, allocator, basic_string
+#include <vector>     // for vector
 
 #include "ftxui/dom/elements.hpp"  // for vtext, operator|, vbox, Element, flex_grow, flex_shrink
 #include "ftxui/dom/node.hpp"       // for Render
 #include "ftxui/screen/screen.hpp"  // for Screen
-#include "gtest/gtest_pred_impl.h"  // for Test, EXPECT_EQ, TEST
 
 namespace ftxui {
 namespace {
diff --git a/src/ftxui/screen/color_test.cpp b/src/ftxui/screen/color_test.cpp
index 25fbcbf4a118454bfb6f0f75f0c5ce8b4e424e82..12dbb2838dc4ee8294317bdae753d75c8a23ab2b 100644
--- a/src/ftxui/screen/color_test.cpp
+++ b/src/ftxui/screen/color_test.cpp
@@ -1,8 +1,6 @@
 #include "ftxui/screen/color.hpp"
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for TestPartResult, SuiteApiResolver, TestFactoryImpl
+#include <gtest/gtest.h>
 #include "ftxui/screen/terminal.hpp"
-#include "gtest/gtest_pred_impl.h"  // for EXPECT_EQ, Test, TEST
 
 namespace ftxui {
 
diff --git a/src/ftxui/screen/string_test.cpp b/src/ftxui/screen/string_test.cpp
index 76da3512a18bc2c6391307fa108c90a16bab19fb..3b13782f4b5cf95b8fdfd42abe67c8f0bc193042 100644
--- a/src/ftxui/screen/string_test.cpp
+++ b/src/ftxui/screen/string_test.cpp
@@ -1,9 +1,6 @@
-#include <gtest/gtest-message.h>  // for Message
-#include <gtest/gtest-test-part.h>  // for TestPartResult, SuiteApiResolver, TestFactoryImpl
-#include <string>                   // for allocator, string
-
 #include "ftxui/screen/string.hpp"
-#include "gtest/gtest_pred_impl.h"  // for EXPECT_EQ, Test, TEST
+#include <gtest/gtest.h>
+#include <string>  // for allocator, string
 
 namespace ftxui {