diff --git a/pixelstats/service.cpp b/pixelstats/service.cpp
new file mode 100644
index 0000000..4df1d84
--- /dev/null
+++ b/pixelstats/service.cpp
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define LOG_TAG "pixelstats"
+
+#include <android-base/logging.h>
+
+#include <pixelstats/SysfsCollector.h>
+
+using android::hardware::google::pixel::SysfsCollector;
+
+#define UFSHC_PATH(filename) "/dev/sys/block/bootdevice/" #filename
+const struct SysfsCollector::SysfsPaths sysfs_paths = {
+    .SlowioReadCntPath = UFSHC_PATH(slowio_read_cnt),
+    .SlowioWriteCntPath = UFSHC_PATH(slowio_write_cnt),
+    .SlowioUnmapCntPath = UFSHC_PATH(slowio_unmap_cnt),
+    .SlowioSyncCntPath = UFSHC_PATH(slowio_sync_cnt),
+    .UFSLifetimeA = UFSHC_PATH(health_descriptor/life_time_estimation_a),
+    .UFSLifetimeB = UFSHC_PATH(health_descriptor/life_time_estimation_b),
+    .UFSLifetimeC = UFSHC_PATH(health_descriptor/life_time_estimation_c),
+    .F2fsStatsPath = "/sys/fs/f2fs/",
+};
+
+int main() {
+    LOG(INFO) << "starting PixelStats";
+
+    SysfsCollector collector(sysfs_paths);
+    collector.collect();  // This blocks forever.
+
+    return 0;
+}
