incremental
diff --git a/src/ast_video_puller_test.cpp b/src/ast_video_puller_test.cpp
new file mode 100644
index 0000000..ef1cbe3
--- /dev/null
+++ b/src/ast_video_puller_test.cpp
@@ -0,0 +1,49 @@
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <ast_jpeg_decoder.hpp>
+#include <ast_video_puller.hpp>
+#include <chrono>
+#include <fstream>
+#include <iomanip>
+#include <iostream>
+#include <thread>
+#include <vector>
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+
+TEST(AstvideoPuller, BasicRead) {
+  std::cout << "Started\n";
+  AstVideo::RawVideoBuffer out;
+  bool have_hardware = false;
+  if (access("/dev/video", F_OK) != -1) {
+    AstVideo::SimpleVideoPuller p;
+    p.initialize();
+    out = p.read_video();
+  } else {
+    FILE *fp = fopen("test_resources/ubuntu_444_800x600_0chrom_0lum.bin", "rb");
+    if (fp) {
+      size_t newLen = fread(out.buffer.data(), sizeof(char),
+                            out.buffer.size() * sizeof(long), fp);
+      if (ferror(fp) != 0) {
+        fputs("Error reading file", stderr);
+      }
+      fclose(fp);
+      out.buffer.resize(newLen);
+      out.mode = AstVideo::YuvMode::YUV444;
+      out.width = 800;
+      out.height = 600;
+      out.y_selector = 0;
+      out.uv_selector = 0;
+    }
+  }
+
+  FILE *fp = fopen("/tmp/screendata.bin", "wb");
+  fwrite(out.buffer.data(), sizeof(char), out.buffer.size(), fp);
+
+  AstVideo::AstJpegDecoder d;
+  std::cout << "MODE " << static_cast<int>(out.mode);
+  d.decode(out.buffer, out.width, out.height, out.mode, out.y_selector,
+           out.uv_selector);
+}
diff --git a/src/getvideo_main.cpp b/src/getvideo_main.cpp
index 8c92bd3..33885ee 100644
--- a/src/getvideo_main.cpp
+++ b/src/getvideo_main.cpp
@@ -24,7 +24,7 @@
   AstVideo::RawVideoBuffer out;
   bool have_hardware = false;
   if (access("/dev/video", F_OK) != -1) {
-    AstVideo::VideoPuller p;
+    AstVideo::SimpleVideoPuller p;
     p.initialize();
     out = p.read_video();
   } else {