diff --git a/payload_generator/ab_generator.cc b/payload_generator/ab_generator.cc
index 2658fb8..7caf897 100644
--- a/payload_generator/ab_generator.cc
+++ b/payload_generator/ab_generator.cc
@@ -20,13 +20,13 @@
 
 #include <base/strings/stringprintf.h>
 
-#include "update_engine/omaha_hash_calculator.h"
-#include "update_engine/payload_constants.h"
+#include "update_engine/common/hash_calculator.h"
+#include "update_engine/common/utils.h"
+#include "update_engine/payload_consumer/payload_constants.h"
 #include "update_engine/payload_generator/annotated_operation.h"
 #include "update_engine/payload_generator/bzip.h"
 #include "update_engine/payload_generator/delta_diff_generator.h"
 #include "update_engine/payload_generator/delta_diff_utils.h"
-#include "update_engine/utils.h"
 
 using std::string;
 using std::vector;
@@ -325,8 +325,7 @@
             : BlocksInExtents(aop.op.src_extents()) * kBlockSize;
     TEST_AND_RETURN_FALSE(utils::ReadExtents(
         source_part_path, src_extents, &src_data, src_length, kBlockSize));
-    TEST_AND_RETURN_FALSE(
-        OmahaHashCalculator::RawHashOfData(src_data, &src_hash));
+    TEST_AND_RETURN_FALSE(HashCalculator::RawHashOfData(src_data, &src_hash));
     aop.op.set_src_sha256_hash(src_hash.data(), src_hash.size());
   }
   return true;
diff --git a/payload_generator/ab_generator.h b/payload_generator/ab_generator.h
index 31cbb1e..c2837c0 100644
--- a/payload_generator/ab_generator.h
+++ b/payload_generator/ab_generator.h
@@ -23,7 +23,7 @@
 #include <base/macros.h>
 #include <brillo/secure_blob.h>
 
-#include "update_engine/payload_constants.h"
+#include "update_engine/payload_consumer/payload_constants.h"
 #include "update_engine/payload_generator/blob_file_writer.h"
 #include "update_engine/payload_generator/extent_utils.h"
 #include "update_engine/payload_generator/filesystem_interface.h"
diff --git a/payload_generator/ab_generator_unittest.cc b/payload_generator/ab_generator_unittest.cc
index 8854225..632fc64 100644
--- a/payload_generator/ab_generator_unittest.cc
+++ b/payload_generator/ab_generator_unittest.cc
@@ -25,14 +25,14 @@
 
 #include <gtest/gtest.h>
 
-#include "update_engine/omaha_hash_calculator.h"
+#include "update_engine/common/hash_calculator.h"
+#include "update_engine/common/test_utils.h"
+#include "update_engine/common/utils.h"
 #include "update_engine/payload_generator/annotated_operation.h"
 #include "update_engine/payload_generator/bzip.h"
 #include "update_engine/payload_generator/delta_diff_generator.h"
 #include "update_engine/payload_generator/extent_ranges.h"
 #include "update_engine/payload_generator/extent_utils.h"
-#include "update_engine/test_utils.h"
-#include "update_engine/utils.h"
 
 using std::string;
 using std::vector;
@@ -581,7 +581,7 @@
   EXPECT_TRUE(aops[0].op.has_src_sha256_hash());
   EXPECT_FALSE(aops[1].op.has_src_sha256_hash());
   brillo::Blob expected_hash;
-  EXPECT_TRUE(OmahaHashCalculator::RawHashOfData(src_data, &expected_hash));
+  EXPECT_TRUE(HashCalculator::RawHashOfData(src_data, &expected_hash));
   brillo::Blob result_hash(aops[0].op.src_sha256_hash().begin(),
                            aops[0].op.src_sha256_hash().end());
   EXPECT_EQ(expected_hash, result_hash);
diff --git a/payload_generator/annotated_operation.cc b/payload_generator/annotated_operation.cc
index 3331303..984f921 100644
--- a/payload_generator/annotated_operation.cc
+++ b/payload_generator/annotated_operation.cc
@@ -20,8 +20,8 @@
 #include <base/strings/string_number_conversions.h>
 #include <base/strings/stringprintf.h>
 
-#include "update_engine/payload_constants.h"
-#include "update_engine/utils.h"
+#include "update_engine/common/utils.h"
+#include "update_engine/payload_consumer/payload_constants.h"
 
 namespace chromeos_update_engine {
 
diff --git a/payload_generator/blob_file_writer.cc b/payload_generator/blob_file_writer.cc
index 501df0e..8225df4 100644
--- a/payload_generator/blob_file_writer.cc
+++ b/payload_generator/blob_file_writer.cc
@@ -16,7 +16,7 @@
 
 #include "update_engine/payload_generator/blob_file_writer.h"
 
-#include "update_engine/utils.h"
+#include "update_engine/common/utils.h"
 
 namespace chromeos_update_engine {
 
diff --git a/payload_generator/blob_file_writer_unittest.cc b/payload_generator/blob_file_writer_unittest.cc
index ff2a23c..5f94ef3 100644
--- a/payload_generator/blob_file_writer_unittest.cc
+++ b/payload_generator/blob_file_writer_unittest.cc
@@ -20,8 +20,8 @@
 
 #include <gtest/gtest.h>
 
-#include "update_engine/test_utils.h"
-#include "update_engine/utils.h"
+#include "update_engine/common/test_utils.h"
+#include "update_engine/common/utils.h"
 
 using chromeos_update_engine::test_utils::FillWithData;
 using std::string;
diff --git a/payload_generator/block_mapping.cc b/payload_generator/block_mapping.cc
index 81ad4bb..ff10f0b 100644
--- a/payload_generator/block_mapping.cc
+++ b/payload_generator/block_mapping.cc
@@ -24,7 +24,7 @@
 #include <string>
 #include <vector>
 
-#include "update_engine/utils.h"
+#include "update_engine/common/utils.h"
 
 using std::string;
 using std::vector;
@@ -57,7 +57,7 @@
 bool BlockMapping::AddManyDiskBlocks(int fd,
                                      off_t initial_byte_offset,
                                      size_t num_blocks,
-                                     std::vector<BlockId>* block_ids) {
+                                     vector<BlockId>* block_ids) {
   bool ret = true;
   block_ids->resize(num_blocks);
   for (size_t block = 0; block < num_blocks; block++) {
diff --git a/payload_generator/block_mapping_unittest.cc b/payload_generator/block_mapping_unittest.cc
index 61080f2..18e48c4 100644
--- a/payload_generator/block_mapping_unittest.cc
+++ b/payload_generator/block_mapping_unittest.cc
@@ -25,8 +25,8 @@
 
 #include <gtest/gtest.h>
 
-#include "update_engine/test_utils.h"
-#include "update_engine/utils.h"
+#include "update_engine/common/test_utils.h"
+#include "update_engine/common/utils.h"
 
 using std::string;
 using std::vector;
diff --git a/payload_generator/bzip.cc b/payload_generator/bzip.cc
index 287b69c..9040193 100644
--- a/payload_generator/bzip.cc
+++ b/payload_generator/bzip.cc
@@ -22,7 +22,7 @@
 #include <algorithm>
 #include <limits>
 
-#include "update_engine/utils.h"
+#include "update_engine/common/utils.h"
 
 using std::string;
 
diff --git a/payload_generator/cycle_breaker.cc b/payload_generator/cycle_breaker.cc
index 6b89190..321732e 100644
--- a/payload_generator/cycle_breaker.cc
+++ b/payload_generator/cycle_breaker.cc
@@ -25,9 +25,9 @@
 #include <base/strings/string_util.h>
 #include <base/strings/stringprintf.h>
 
+#include "update_engine/common/utils.h"
 #include "update_engine/payload_generator/graph_utils.h"
 #include "update_engine/payload_generator/tarjan.h"
-#include "update_engine/utils.h"
 
 using std::make_pair;
 using std::set;
diff --git a/payload_generator/cycle_breaker_unittest.cc b/payload_generator/cycle_breaker_unittest.cc
index b4243a7..4053cf3 100644
--- a/payload_generator/cycle_breaker_unittest.cc
+++ b/payload_generator/cycle_breaker_unittest.cc
@@ -24,8 +24,8 @@
 #include <base/logging.h>
 #include <gtest/gtest.h>
 
+#include "update_engine/common/utils.h"
 #include "update_engine/payload_generator/graph_types.h"
-#include "update_engine/utils.h"
 
 using std::make_pair;
 using std::pair;
diff --git a/payload_generator/delta_diff_generator.cc b/payload_generator/delta_diff_generator.cc
index 96730aa..ffe0fe9 100644
--- a/payload_generator/delta_diff_generator.cc
+++ b/payload_generator/delta_diff_generator.cc
@@ -30,15 +30,15 @@
 
 #include <base/logging.h>
 
-#include "update_engine/delta_performer.h"
-#include "update_engine/payload_constants.h"
+#include "update_engine/common/utils.h"
+#include "update_engine/payload_consumer/delta_performer.h"
+#include "update_engine/payload_consumer/payload_constants.h"
 #include "update_engine/payload_generator/ab_generator.h"
 #include "update_engine/payload_generator/blob_file_writer.h"
 #include "update_engine/payload_generator/delta_diff_utils.h"
 #include "update_engine/payload_generator/full_update_generator.h"
 #include "update_engine/payload_generator/inplace_generator.h"
 #include "update_engine/payload_generator/payload_file.h"
-#include "update_engine/utils.h"
 
 using std::string;
 using std::unique_ptr;
diff --git a/payload_generator/delta_diff_utils.cc b/payload_generator/delta_diff_utils.cc
index 701f27c..ba1aac4 100644
--- a/payload_generator/delta_diff_utils.cc
+++ b/payload_generator/delta_diff_utils.cc
@@ -23,14 +23,14 @@
 #include <base/format_macros.h>
 #include <base/strings/stringprintf.h>
 
-#include "update_engine/omaha_hash_calculator.h"
-#include "update_engine/payload_generator/bzip.h"
+#include "update_engine/common/hash_calculator.h"
+#include "update_engine/common/subprocess.h"
+#include "update_engine/common/utils.h"
 #include "update_engine/payload_generator/block_mapping.h"
+#include "update_engine/payload_generator/bzip.h"
 #include "update_engine/payload_generator/delta_diff_generator.h"
 #include "update_engine/payload_generator/extent_ranges.h"
 #include "update_engine/payload_generator/extent_utils.h"
-#include "update_engine/subprocess.h"
-#include "update_engine/utils.h"
 
 using std::map;
 using std::string;
@@ -653,7 +653,7 @@
 
 bool InitializePartitionInfo(const PartitionConfig& part, PartitionInfo* info) {
   info->set_size(part.size);
-  OmahaHashCalculator hasher;
+  HashCalculator hasher;
   TEST_AND_RETURN_FALSE(hasher.UpdateFile(part.path, part.size) ==
                         static_cast<off_t>(part.size));
   TEST_AND_RETURN_FALSE(hasher.Finalize());
diff --git a/payload_generator/delta_diff_utils_unittest.cc b/payload_generator/delta_diff_utils_unittest.cc
index ce37b27..4dc5981 100644
--- a/payload_generator/delta_diff_utils_unittest.cc
+++ b/payload_generator/delta_diff_utils_unittest.cc
@@ -25,12 +25,12 @@
 #include <base/strings/stringprintf.h>
 #include <gtest/gtest.h>
 
+#include "update_engine/common/test_utils.h"
+#include "update_engine/common/utils.h"
 #include "update_engine/payload_generator/delta_diff_generator.h"
 #include "update_engine/payload_generator/extent_ranges.h"
 #include "update_engine/payload_generator/extent_utils.h"
 #include "update_engine/payload_generator/fake_filesystem.h"
-#include "update_engine/test_utils.h"
-#include "update_engine/utils.h"
 
 using std::string;
 using std::vector;
diff --git a/payload_generator/ext2_filesystem.cc b/payload_generator/ext2_filesystem.cc
index 182c098..b452b41 100644
--- a/payload_generator/ext2_filesystem.cc
+++ b/payload_generator/ext2_filesystem.cc
@@ -26,10 +26,10 @@
 #include <base/logging.h>
 #include <base/strings/stringprintf.h>
 
+#include "update_engine/common/utils.h"
 #include "update_engine/payload_generator/extent_ranges.h"
 #include "update_engine/payload_generator/extent_utils.h"
 #include "update_engine/update_metadata.pb.h"
-#include "update_engine/utils.h"
 
 using std::set;
 using std::string;
diff --git a/payload_generator/ext2_filesystem_unittest.cc b/payload_generator/ext2_filesystem_unittest.cc
index fef1c9f..df8b98f 100644
--- a/payload_generator/ext2_filesystem_unittest.cc
+++ b/payload_generator/ext2_filesystem_unittest.cc
@@ -25,14 +25,14 @@
 
 #include <base/format_macros.h>
 #include <base/logging.h>
-#include <base/strings/stringprintf.h>
 #include <base/strings/string_number_conversions.h>
 #include <base/strings/string_util.h>
+#include <base/strings/stringprintf.h>
 #include <gtest/gtest.h>
 
+#include "update_engine/common/test_utils.h"
+#include "update_engine/common/utils.h"
 #include "update_engine/payload_generator/extent_utils.h"
-#include "update_engine/test_utils.h"
-#include "update_engine/utils.h"
 
 using chromeos_update_engine::test_utils::System;
 using std::map;
diff --git a/payload_generator/extent_ranges.cc b/payload_generator/extent_ranges.cc
index f538c5e..848fdc7 100644
--- a/payload_generator/extent_ranges.cc
+++ b/payload_generator/extent_ranges.cc
@@ -23,7 +23,7 @@
 
 #include <base/logging.h>
 
-#include "update_engine/payload_constants.h"
+#include "update_engine/payload_consumer/payload_constants.h"
 
 using std::set;
 using std::vector;
diff --git a/payload_generator/extent_ranges_unittest.cc b/payload_generator/extent_ranges_unittest.cc
index c8026ba..8b39040 100644
--- a/payload_generator/extent_ranges_unittest.cc
+++ b/payload_generator/extent_ranges_unittest.cc
@@ -20,9 +20,9 @@
 
 #include <gtest/gtest.h>
 
-#include "update_engine/payload_constants.h"
+#include "update_engine/common/test_utils.h"
+#include "update_engine/payload_consumer/payload_constants.h"
 #include "update_engine/payload_generator/extent_utils.h"
-#include "update_engine/test_utils.h"
 
 using std::vector;
 
diff --git a/payload_generator/extent_utils.cc b/payload_generator/extent_utils.cc
index 37acc47..1093445 100644
--- a/payload_generator/extent_utils.cc
+++ b/payload_generator/extent_utils.cc
@@ -23,7 +23,7 @@
 #include <base/logging.h>
 #include <base/macros.h>
 
-#include "update_engine/payload_constants.h"
+#include "update_engine/payload_consumer/payload_constants.h"
 #include "update_engine/payload_generator/annotated_operation.h"
 #include "update_engine/payload_generator/extent_ranges.h"
 
diff --git a/payload_generator/extent_utils.h b/payload_generator/extent_utils.h
index 992b28f..91729d5 100644
--- a/payload_generator/extent_utils.h
+++ b/payload_generator/extent_utils.h
@@ -19,7 +19,7 @@
 
 #include <vector>
 
-#include "update_engine/payload_constants.h"
+#include "update_engine/payload_consumer/payload_constants.h"
 #include "update_engine/update_metadata.pb.h"
 
 // Utility functions for manipulating Extents and lists of blocks.
diff --git a/payload_generator/extent_utils_unittest.cc b/payload_generator/extent_utils_unittest.cc
index 65c0b15..62c8ff1 100644
--- a/payload_generator/extent_utils_unittest.cc
+++ b/payload_generator/extent_utils_unittest.cc
@@ -21,9 +21,9 @@
 
 #include <gtest/gtest.h>
 
-#include "update_engine/payload_constants.h"
+#include "update_engine/common/test_utils.h"
+#include "update_engine/payload_consumer/payload_constants.h"
 #include "update_engine/payload_generator/extent_ranges.h"
-#include "update_engine/test_utils.h"
 
 using std::vector;
 
diff --git a/payload_generator/full_update_generator.cc b/payload_generator/full_update_generator.cc
index 1ae01b9..56a3ca8 100644
--- a/payload_generator/full_update_generator.cc
+++ b/payload_generator/full_update_generator.cc
@@ -30,8 +30,8 @@
 #include <base/threading/simple_thread.h>
 #include <brillo/secure_blob.h>
 
+#include "update_engine/common/utils.h"
 #include "update_engine/payload_generator/bzip.h"
-#include "update_engine/utils.h"
 
 using std::vector;
 
diff --git a/payload_generator/full_update_generator_unittest.cc b/payload_generator/full_update_generator_unittest.cc
index 21c23e0..d46346d 100644
--- a/payload_generator/full_update_generator_unittest.cc
+++ b/payload_generator/full_update_generator_unittest.cc
@@ -21,9 +21,9 @@
 
 #include <gtest/gtest.h>
 
-#include "update_engine/payload_constants.h"
+#include "update_engine/common/test_utils.h"
+#include "update_engine/payload_consumer/payload_constants.h"
 #include "update_engine/payload_generator/extent_utils.h"
-#include "update_engine/test_utils.h"
 
 using chromeos_update_engine::test_utils::FillWithData;
 using std::string;
diff --git a/payload_generator/generate_delta_main.cc b/payload_generator/generate_delta_main.cc
index fa56a51..dbb15bc 100644
--- a/payload_generator/generate_delta_main.cc
+++ b/payload_generator/generate_delta_main.cc
@@ -29,16 +29,16 @@
 #include <base/strings/string_split.h>
 #include <brillo/flag_helper.h>
 
-#include "update_engine/delta_performer.h"
-#include "update_engine/payload_constants.h"
+#include "update_engine/common/prefs.h"
+#include "update_engine/common/terminator.h"
+#include "update_engine/common/utils.h"
+#include "update_engine/payload_consumer/delta_performer.h"
+#include "update_engine/payload_consumer/payload_constants.h"
 #include "update_engine/payload_generator/delta_diff_generator.h"
 #include "update_engine/payload_generator/delta_diff_utils.h"
 #include "update_engine/payload_generator/payload_generation_config.h"
 #include "update_engine/payload_generator/payload_signer.h"
-#include "update_engine/prefs.h"
-#include "update_engine/terminator.h"
 #include "update_engine/update_metadata.pb.h"
-#include "update_engine/utils.h"
 
 // This file contains a simple program that takes an old path, a new path,
 // and an output file as arguments and the path to an output file and
diff --git a/payload_generator/graph_utils.cc b/payload_generator/graph_utils.cc
index 55b0e69..2d5fb63 100644
--- a/payload_generator/graph_utils.cc
+++ b/payload_generator/graph_utils.cc
@@ -23,7 +23,7 @@
 #include <base/logging.h>
 #include <base/macros.h>
 
-#include "update_engine/payload_constants.h"
+#include "update_engine/payload_consumer/payload_constants.h"
 #include "update_engine/payload_generator/annotated_operation.h"
 #include "update_engine/payload_generator/extent_utils.h"
 
diff --git a/payload_generator/graph_utils_unittest.cc b/payload_generator/graph_utils_unittest.cc
index bcfb72b..7d3dbe3 100644
--- a/payload_generator/graph_utils_unittest.cc
+++ b/payload_generator/graph_utils_unittest.cc
@@ -21,7 +21,7 @@
 
 #include <gtest/gtest.h>
 
-#include "update_engine/payload_constants.h"
+#include "update_engine/payload_consumer/payload_constants.h"
 #include "update_engine/payload_generator/extent_ranges.h"
 #include "update_engine/payload_generator/extent_utils.h"
 
diff --git a/payload_generator/inplace_generator.cc b/payload_generator/inplace_generator.cc
index 0cfbe02..2111748 100644
--- a/payload_generator/inplace_generator.cc
+++ b/payload_generator/inplace_generator.cc
@@ -23,7 +23,8 @@
 #include <utility>
 #include <vector>
 
-#include "update_engine/payload_constants.h"
+#include "update_engine/common/utils.h"
+#include "update_engine/payload_consumer/payload_constants.h"
 #include "update_engine/payload_generator/cycle_breaker.h"
 #include "update_engine/payload_generator/delta_diff_generator.h"
 #include "update_engine/payload_generator/delta_diff_utils.h"
@@ -32,7 +33,6 @@
 #include "update_engine/payload_generator/graph_utils.h"
 #include "update_engine/payload_generator/topological_sort.h"
 #include "update_engine/update_metadata.pb.h"
-#include "update_engine/utils.h"
 
 using std::make_pair;
 using std::map;
diff --git a/payload_generator/inplace_generator_unittest.cc b/payload_generator/inplace_generator_unittest.cc
index d6430c8..9932ef9 100644
--- a/payload_generator/inplace_generator_unittest.cc
+++ b/payload_generator/inplace_generator_unittest.cc
@@ -29,13 +29,13 @@
 #include <base/strings/stringprintf.h>
 #include <gtest/gtest.h>
 
+#include "update_engine/common/test_utils.h"
+#include "update_engine/common/utils.h"
 #include "update_engine/payload_generator/cycle_breaker.h"
 #include "update_engine/payload_generator/delta_diff_generator.h"
 #include "update_engine/payload_generator/extent_ranges.h"
 #include "update_engine/payload_generator/graph_types.h"
 #include "update_engine/payload_generator/graph_utils.h"
-#include "update_engine/test_utils.h"
-#include "update_engine/utils.h"
 
 using std::map;
 using std::set;
diff --git a/payload_generator/payload_file.cc b/payload_generator/payload_file.cc
index ae4896a..8b3efa6 100644
--- a/payload_generator/payload_file.cc
+++ b/payload_generator/payload_file.cc
@@ -20,10 +20,10 @@
 
 #include <algorithm>
 
-#include "update_engine/delta_performer.h"
-#include "update_engine/file_writer.h"
-#include "update_engine/omaha_hash_calculator.h"
-#include "update_engine/payload_constants.h"
+#include "update_engine/common/hash_calculator.h"
+#include "update_engine/payload_consumer/delta_performer.h"
+#include "update_engine/payload_consumer/file_writer.h"
+#include "update_engine/payload_consumer/payload_constants.h"
 #include "update_engine/payload_generator/annotated_operation.h"
 #include "update_engine/payload_generator/delta_diff_utils.h"
 #include "update_engine/payload_generator/payload_signer.h"
@@ -218,7 +218,7 @@
   if (major_version_ == kBrilloMajorPayloadVersion &&
       !private_key_path.empty()) {
     brillo::Blob metadata_hash, metadata_signature;
-    TEST_AND_RETURN_FALSE(OmahaHashCalculator::RawHashOfFile(payload_file,
+    TEST_AND_RETURN_FALSE(HashCalculator::RawHashOfFile(payload_file,
                                                              metadata_size,
                                                              &metadata_hash));
     TEST_AND_RETURN_FALSE(
@@ -302,7 +302,7 @@
 
 bool PayloadFile::AddOperationHash(InstallOperation* op,
                                    const brillo::Blob& buf) {
-  OmahaHashCalculator hasher;
+  HashCalculator hasher;
   TEST_AND_RETURN_FALSE(hasher.Update(buf.data(), buf.size()));
   TEST_AND_RETURN_FALSE(hasher.Finalize());
   const brillo::Blob& hash = hasher.raw_hash();
diff --git a/payload_generator/payload_file_unittest.cc b/payload_generator/payload_file_unittest.cc
index 244d22b..4d18adf 100644
--- a/payload_generator/payload_file_unittest.cc
+++ b/payload_generator/payload_file_unittest.cc
@@ -22,8 +22,8 @@
 
 #include <gtest/gtest.h>
 
+#include "update_engine/common/test_utils.h"
 #include "update_engine/payload_generator/extent_ranges.h"
-#include "update_engine/test_utils.h"
 
 using std::string;
 using std::vector;
diff --git a/payload_generator/payload_generation_config.cc b/payload_generator/payload_generation_config.cc
index c2a78cc..63d1884 100644
--- a/payload_generator/payload_generation_config.cc
+++ b/payload_generator/payload_generation_config.cc
@@ -18,11 +18,11 @@
 
 #include <base/logging.h>
 
-#include "update_engine/delta_performer.h"
+#include "update_engine/common/utils.h"
+#include "update_engine/payload_consumer/delta_performer.h"
 #include "update_engine/payload_generator/delta_diff_generator.h"
 #include "update_engine/payload_generator/ext2_filesystem.h"
 #include "update_engine/payload_generator/raw_filesystem.h"
-#include "update_engine/utils.h"
 
 namespace chromeos_update_engine {
 
diff --git a/payload_generator/payload_generation_config.h b/payload_generator/payload_generation_config.h
index 8ee8887..8723680 100644
--- a/payload_generator/payload_generation_config.h
+++ b/payload_generator/payload_generation_config.h
@@ -23,7 +23,7 @@
 #include <string>
 #include <vector>
 
-#include "update_engine/payload_constants.h"
+#include "update_engine/payload_consumer/payload_constants.h"
 #include "update_engine/payload_generator/filesystem_interface.h"
 #include "update_engine/update_metadata.pb.h"
 
diff --git a/payload_generator/payload_signer.cc b/payload_generator/payload_signer.cc
index f1242e1..a0c61b1 100644
--- a/payload_generator/payload_signer.cc
+++ b/payload_generator/payload_signer.cc
@@ -24,15 +24,15 @@
 #include <brillo/data_encoding.h>
 #include <openssl/pem.h>
 
-#include "update_engine/delta_performer.h"
-#include "update_engine/omaha_hash_calculator.h"
-#include "update_engine/payload_constants.h"
+#include "update_engine/common/hash_calculator.h"
+#include "update_engine/common/subprocess.h"
+#include "update_engine/common/utils.h"
+#include "update_engine/payload_consumer/delta_performer.h"
+#include "update_engine/payload_consumer/payload_constants.h"
+#include "update_engine/payload_consumer/payload_verifier.h"
 #include "update_engine/payload_generator/delta_diff_generator.h"
 #include "update_engine/payload_generator/payload_file.h"
-#include "update_engine/payload_verifier.h"
-#include "update_engine/subprocess.h"
 #include "update_engine/update_metadata.pb.h"
-#include "update_engine/utils.h"
 
 using std::string;
 using std::vector;
@@ -180,13 +180,13 @@
   if (out_metadata_hash) {
     // Calculates the hash on the manifest.
     TEST_AND_RETURN_FALSE(
-        OmahaHashCalculator::RawHashOfBytes(payload.data(), metadata_size,
-                                            out_metadata_hash));
+        HashCalculator::RawHashOfBytes(payload.data(), metadata_size,
+                                       out_metadata_hash));
   }
   if (out_hash_data) {
     // Calculates the hash on the updated payload. Note that we skip metadata
     // signature and payload signature.
-    OmahaHashCalculator calc;
+    HashCalculator calc;
     TEST_AND_RETURN_FALSE(calc.Update(payload.data(), metadata_size));
     TEST_AND_RETURN_FALSE(calc.Update(
         payload.data() + metadata_size + metadata_signature_size,
@@ -222,7 +222,7 @@
   }
 }
 
-bool PayloadSigner::LoadPayload(const std::string& payload_path,
+bool PayloadSigner::LoadPayload(const string& payload_path,
                                 brillo::Blob* out_payload,
                                 DeltaArchiveManifest* out_manifest,
                                 uint64_t* out_major_version,
@@ -382,9 +382,9 @@
                                         uint64_t* out_length) {
   DCHECK(out_length);
   brillo::Blob x_blob(1, 'x'), hash_blob, sig_blob;
-  TEST_AND_RETURN_FALSE(OmahaHashCalculator::RawHashOfBytes(x_blob.data(),
-                                                            x_blob.size(),
-                                                            &hash_blob));
+  TEST_AND_RETURN_FALSE(HashCalculator::RawHashOfBytes(x_blob.data(),
+                                                       x_blob.size(),
+                                                       &hash_blob));
   TEST_AND_RETURN_FALSE(
       SignHashWithKeys(hash_blob, private_key_paths, &sig_blob));
   *out_length = sig_blob.size();
@@ -467,9 +467,9 @@
   // Calculates the hash on the updated payload. Note that the payload includes
   // the signature op but doesn't include the signature blob at the end.
   brillo::Blob metadata_hash;
-  TEST_AND_RETURN_FALSE(OmahaHashCalculator::RawHashOfBytes(metadata,
-                                                            metadata_size,
-                                                            &metadata_hash));
+  TEST_AND_RETURN_FALSE(HashCalculator::RawHashOfBytes(metadata,
+                                                       metadata_size,
+                                                       &metadata_hash));
 
   brillo::Blob signature;
   TEST_AND_RETURN_FALSE(SignHash(metadata_hash,
diff --git a/payload_generator/payload_signer_unittest.cc b/payload_generator/payload_signer_unittest.cc
index 42fcc63..b302f52 100644
--- a/payload_generator/payload_signer_unittest.cc
+++ b/payload_generator/payload_signer_unittest.cc
@@ -22,12 +22,12 @@
 #include <base/logging.h>
 #include <gtest/gtest.h>
 
-#include "update_engine/omaha_hash_calculator.h"
-#include "update_engine/payload_constants.h"
+#include "update_engine/common/hash_calculator.h"
+#include "update_engine/common/utils.h"
+#include "update_engine/payload_consumer/payload_constants.h"
+#include "update_engine/payload_consumer/payload_verifier.h"
 #include "update_engine/payload_generator/payload_file.h"
-#include "update_engine/payload_verifier.h"
 #include "update_engine/update_metadata.pb.h"
-#include "update_engine/utils.h"
 
 using std::string;
 using std::vector;
@@ -105,9 +105,9 @@
   EXPECT_TRUE(PayloadSigner::SignatureBlobLength(private_keys, &length));
   EXPECT_GT(length, 0);
   brillo::Blob hash_blob;
-  EXPECT_TRUE(OmahaHashCalculator::RawHashOfBytes(data_blob.data(),
-                                                  data_blob.size(),
-                                                  &hash_blob));
+  EXPECT_TRUE(HashCalculator::RawHashOfBytes(data_blob.data(),
+                                             data_blob.size(),
+                                             &hash_blob));
   EXPECT_TRUE(PayloadSigner::SignHashWithKeys(
       hash_blob,
       private_keys,
diff --git a/payload_generator/raw_filesystem.cc b/payload_generator/raw_filesystem.cc
index efb944f..2fb1400 100644
--- a/payload_generator/raw_filesystem.cc
+++ b/payload_generator/raw_filesystem.cc
@@ -16,9 +16,9 @@
 
 #include "update_engine/payload_generator/raw_filesystem.h"
 
+#include "update_engine/common/utils.h"
 #include "update_engine/payload_generator/extent_ranges.h"
 #include "update_engine/update_metadata.pb.h"
-#include "update_engine/utils.h"
 
 using std::unique_ptr;
 
diff --git a/payload_generator/tarjan.cc b/payload_generator/tarjan.cc
index 7e4eabe..98e29f9 100644
--- a/payload_generator/tarjan.cc
+++ b/payload_generator/tarjan.cc
@@ -20,7 +20,7 @@
 
 #include <base/logging.h>
 
-#include "update_engine/utils.h"
+#include "update_engine/common/utils.h"
 
 using std::min;
 using std::vector;
diff --git a/payload_generator/tarjan_unittest.cc b/payload_generator/tarjan_unittest.cc
index f22f06d..e40a7ff 100644
--- a/payload_generator/tarjan_unittest.cc
+++ b/payload_generator/tarjan_unittest.cc
@@ -22,8 +22,8 @@
 #include <base/logging.h>
 #include <gtest/gtest.h>
 
+#include "update_engine/common/utils.h"
 #include "update_engine/payload_generator/graph_types.h"
-#include "update_engine/utils.h"
 
 using std::make_pair;
 using std::string;
diff --git a/payload_generator/zip_unittest.cc b/payload_generator/zip_unittest.cc
index f2c569b..49b08b0 100644
--- a/payload_generator/zip_unittest.cc
+++ b/payload_generator/zip_unittest.cc
@@ -22,8 +22,8 @@
 
 #include <gtest/gtest.h>
 
+#include "update_engine/common/test_utils.h"
 #include "update_engine/payload_generator/bzip.h"
-#include "update_engine/test_utils.h"
 
 using chromeos_update_engine::test_utils::kRandomString;
 using std::string;
