diff --git a/src/TachSensor.cpp b/src/TachSensor.cpp
index f609410..f5d420d 100644
--- a/src/TachSensor.cpp
+++ b/src/TachSensor.cpp
@@ -118,10 +118,11 @@
 
 void TachSensor::setupRead(void)
 {
-    boost::asio::async_read_until(
-        inputDev, readBuf, '\n',
-        [&](const boost::system::error_code& ec,
-            std::size_t /*bytes_transfered*/) { handleResponse(ec); });
+    boost::asio::async_read_until(inputDev, readBuf, '\n',
+                                  [&](const boost::system::error_code& ec,
+                                      std::size_t /*bytes_transfered*/) {
+        handleResponse(ec);
+    });
 }
 
 void TachSensor::handleResponse(const boost::system::error_code& err)
@@ -253,22 +254,21 @@
 {
     gpioFd.async_wait(boost::asio::posix::stream_descriptor::wait_read,
                       [this](const boost::system::error_code& ec) {
-                          if (ec == boost::system::errc::bad_file_descriptor)
-                          {
-                              return; // we're being destroyed
-                          }
-                          if (ec)
-                          {
-                              std::cerr << "Error on presence sensor " << name
-                                        << " \n";
-                              ;
-                          }
-                          else
-                          {
-                              read();
-                          }
-                          monitorPresence();
-                      });
+        if (ec == boost::system::errc::bad_file_descriptor)
+        {
+            return; // we're being destroyed
+        }
+        if (ec)
+        {
+            std::cerr << "Error on presence sensor " << name << " \n";
+            ;
+        }
+        else
+        {
+            read();
+        }
+        monitorPresence();
+    });
 }
 
 void PresenceSensor::read(void)
