diff --git a/pw_kvs/flash_memory.cc b/pw_kvs/flash_memory.cc
index ceb2d3e..1f663c4 100644
--- a/pw_kvs/flash_memory.cc
+++ b/pw_kvs/flash_memory.cc
@@ -41,6 +41,28 @@
   return result;
 }
 
+FlashPartition::FlashPartition(
+    FlashMemory* flash,
+    uint32_t start_sector_index,
+    uint32_t sector_count,
+    uint32_t alignment_bytes,  // Defaults to flash alignment
+    PartitionPermission permission)
+
+    : flash_(*flash),
+      start_sector_index_(start_sector_index),
+      sector_count_(sector_count),
+      alignment_bytes_(
+          alignment_bytes == 0
+              ? flash_.alignment_bytes()
+              : std::max(alignment_bytes, uint32_t(flash_.alignment_bytes()))),
+      permission_(permission) {
+  uint32_t misalignment = (alignment_bytes_ % flash_.alignment_bytes());
+  PW_DCHECK_UINT_EQ(misalignment,
+                    0,
+                    "Flash partition alignmentmust be a multiple of the flash "
+                    "memory alignment");
+}
+
 Status FlashPartition::Erase(Address address, size_t num_sectors) {
   if (permission_ == PartitionPermission::kReadOnly) {
     return Status::PermissionDenied();
diff --git a/pw_kvs/public/pw_kvs/flash_memory.h b/pw_kvs/public/pw_kvs/flash_memory.h
index 029fba2..0590e56 100644
--- a/pw_kvs/public/pw_kvs/flash_memory.h
+++ b/pw_kvs/public/pw_kvs/flash_memory.h
@@ -169,22 +169,7 @@
       uint32_t start_sector_index,
       uint32_t sector_count,
       uint32_t alignment_bytes = 0,  // Defaults to flash alignment
-      PartitionPermission permission = PartitionPermission::kReadAndWrite)
-      : flash_(*flash),
-        start_sector_index_(start_sector_index),
-        sector_count_(sector_count),
-        alignment_bytes_(alignment_bytes == 0
-                             ? flash_.alignment_bytes()
-                             : std::max(alignment_bytes,
-                                        uint32_t(flash_.alignment_bytes()))),
-        permission_(permission) {
-    uint32_t misalignment = (alignment_bytes_ % flash_.alignment_bytes());
-    PW_DCHECK_UINT_EQ(
-        misalignment,
-        0,
-        "Flash partition alignmentmust be a multiple of the flash "
-        "memory alignment");
-  }
+      PartitionPermission permission = PartitionPermission::kReadAndWrite);
 
   // Creates a FlashPartition that uses the entire flash with its alignment.
   // TODO(pwbug/246): This can be constexpr when tokenized asserts are fixed.
