diff --git a/attn/attn_logging.cpp b/attn/attn_logging.cpp
index 20550a1..c31a656 100644
--- a/attn/attn_logging.cpp
+++ b/attn/attn_logging.cpp
@@ -423,7 +423,6 @@
 void eventTerminate(std::map<std::string, std::string> i_additionalData,
                     char* i_tiInfoData)
 {
-
     uint32_t tiInfoSize = 0; // assume TI info was not available
 
     if (nullptr != i_tiInfoData)
diff --git a/attn/attn_monitor.hpp b/attn/attn_monitor.hpp
index 7b70316..ac791cd 100644
--- a/attn/attn_monitor.hpp
+++ b/attn/attn_monitor.hpp
@@ -34,7 +34,6 @@
         iv_gpioConfig(config), iv_gpioEventDescriptor(io),
         iv_config(i_attnConfig)
     {
-
         requestGPIOEvent(); // registers the event handler
     }
 
diff --git a/attn/pel/extended_user_header.hpp b/attn/pel/extended_user_header.hpp
index 3c782a8..fa4c7f6 100644
--- a/attn/pel/extended_user_header.hpp
+++ b/attn/pel/extended_user_header.hpp
@@ -43,12 +43,12 @@
 class ExtendedUserHeader : public Section
 {
   public:
-    ExtendedUserHeader()                          = delete;
-    ~ExtendedUserHeader()                         = default;
-    ExtendedUserHeader(const ExtendedUserHeader&) = default;
+    ExtendedUserHeader()                                     = delete;
+    ~ExtendedUserHeader()                                    = default;
+    ExtendedUserHeader(const ExtendedUserHeader&)            = default;
     ExtendedUserHeader& operator=(const ExtendedUserHeader&) = default;
     ExtendedUserHeader(ExtendedUserHeader&&)                 = default;
-    ExtendedUserHeader& operator=(ExtendedUserHeader&&) = default;
+    ExtendedUserHeader& operator=(ExtendedUserHeader&&)      = default;
 
     /**
      * @brief Constructor
diff --git a/attn/pel/pel_minimal.hpp b/attn/pel/pel_minimal.hpp
index 780c666..9678518 100644
--- a/attn/pel/pel_minimal.hpp
+++ b/attn/pel/pel_minimal.hpp
@@ -37,12 +37,12 @@
 class PelMinimal
 {
   public:
-    PelMinimal()                  = delete;
-    ~PelMinimal()                 = default;
-    PelMinimal(const PelMinimal&) = delete;
+    PelMinimal()                             = delete;
+    ~PelMinimal()                            = default;
+    PelMinimal(const PelMinimal&)            = delete;
     PelMinimal& operator=(const PelMinimal&) = delete;
     PelMinimal(PelMinimal&&)                 = delete;
-    PelMinimal& operator=(PelMinimal&&) = delete;
+    PelMinimal& operator=(PelMinimal&&)      = delete;
 
     /**
      * @brief Create a minimal PEL object from raw data
diff --git a/attn/pel/pel_section.hpp b/attn/pel/pel_section.hpp
index ca8dce4..6d18822 100644
--- a/attn/pel/pel_section.hpp
+++ b/attn/pel/pel_section.hpp
@@ -16,12 +16,12 @@
 class Section
 {
   public:
-    Section()               = default;
-    virtual ~Section()      = default;
-    Section(const Section&) = default;
+    Section()                          = default;
+    virtual ~Section()                 = default;
+    Section(const Section&)            = default;
     Section& operator=(const Section&) = default;
     Section(Section&&)                 = default;
-    Section& operator=(Section&&) = default;
+    Section& operator=(Section&&)      = default;
 
     /**
      * @brief Returns a reference to the SectionHeader
diff --git a/attn/pel/primary_src.hpp b/attn/pel/primary_src.hpp
index be40448..d69e3a6 100644
--- a/attn/pel/primary_src.hpp
+++ b/attn/pel/primary_src.hpp
@@ -62,12 +62,12 @@
         virtualProgressSRC  = 0x80
     };
 
-    PrimarySrc()                  = delete;
-    ~PrimarySrc()                 = default;
-    PrimarySrc(const PrimarySrc&) = delete;
+    PrimarySrc()                             = delete;
+    ~PrimarySrc()                            = default;
+    PrimarySrc(const PrimarySrc&)            = delete;
     PrimarySrc& operator=(const PrimarySrc&) = delete;
     PrimarySrc(PrimarySrc&&)                 = delete;
-    PrimarySrc& operator=(PrimarySrc&&) = delete;
+    PrimarySrc& operator=(PrimarySrc&&)      = delete;
 
     /**
      * @brief Constructor
diff --git a/attn/pel/private_header.hpp b/attn/pel/private_header.hpp
index d6739c7..011ade5 100644
--- a/attn/pel/private_header.hpp
+++ b/attn/pel/private_header.hpp
@@ -45,12 +45,12 @@
 class PrivateHeader : public Section
 {
   public:
-    PrivateHeader()                     = delete;
-    ~PrivateHeader()                    = default;
-    PrivateHeader(const PrivateHeader&) = default;
+    PrivateHeader()                                = delete;
+    ~PrivateHeader()                               = default;
+    PrivateHeader(const PrivateHeader&)            = default;
     PrivateHeader& operator=(const PrivateHeader&) = default;
     PrivateHeader(PrivateHeader&&)                 = default;
-    PrivateHeader& operator=(PrivateHeader&&) = default;
+    PrivateHeader& operator=(PrivateHeader&&)      = default;
 
     /**
      * @brief Constructor
diff --git a/attn/pel/stream.hpp b/attn/pel/stream.hpp
index a82bd8a..5a1462d 100644
--- a/attn/pel/stream.hpp
+++ b/attn/pel/stream.hpp
@@ -49,12 +49,12 @@
 class Stream
 {
   public:
-    Stream()              = delete;
-    ~Stream()             = default;
-    Stream(const Stream&) = default;
+    Stream()                         = delete;
+    ~Stream()                        = default;
+    Stream(const Stream&)            = default;
     Stream& operator=(const Stream&) = default;
     Stream(Stream&&)                 = default;
-    Stream& operator=(Stream&&) = default;
+    Stream& operator=(Stream&&)      = default;
 
     /**
      * @brief Constructor
diff --git a/attn/pel/user_header.hpp b/attn/pel/user_header.hpp
index 3be6e66..87cad50 100644
--- a/attn/pel/user_header.hpp
+++ b/attn/pel/user_header.hpp
@@ -33,12 +33,12 @@
 class UserHeader : public Section
 {
   public:
-    UserHeader()                  = delete;
-    ~UserHeader()                 = default;
-    UserHeader(const UserHeader&) = default;
+    UserHeader()                             = delete;
+    ~UserHeader()                            = default;
+    UserHeader(const UserHeader&)            = default;
     UserHeader& operator=(const UserHeader&) = default;
     UserHeader(UserHeader&&)                 = default;
-    UserHeader& operator=(UserHeader&&) = default;
+    UserHeader& operator=(UserHeader&&)      = default;
 
     /**
      * @brief Constructor
