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
