diff --git a/microdroid_manager/src/main.rs b/microdroid_manager/src/main.rs
index fbbe8f3..1ab17d5 100644
--- a/microdroid_manager/src/main.rs
+++ b/microdroid_manager/src/main.rs
@@ -15,8 +15,8 @@
 //! Microdroid Manager
 
 mod ioutil;
+mod metadata;
 mod payload_config;
-mod signature;
 
 use android_logger::Config;
 use log::{info, Level};
@@ -32,9 +32,9 @@
 
     info!("started.");
 
-    let signature = signature::load()?;
-    if !signature.payload_config_path.is_empty() {
-        let config = VmPayloadConfig::load_from(Path::new(&signature.payload_config_path))?;
+    let metadata = metadata::load()?;
+    if !metadata.payload_config_path.is_empty() {
+        let config = VmPayloadConfig::load_from(Path::new(&metadata.payload_config_path))?;
         if let Some(main_task) = &config.task {
             exec(main_task)?;
         }
diff --git a/microdroid_manager/src/metadata.rs b/microdroid_manager/src/metadata.rs
new file mode 100644
index 0000000..4f7d7af
--- /dev/null
+++ b/microdroid_manager/src/metadata.rs
@@ -0,0 +1,39 @@
+// Copyright 2021, The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! Payload metadata from /dev/block/by-name/metadata
+
+use log::info;
+use microdroid_metadata::metadata::Metadata;
+use protobuf::Message;
+use std::fs::File;
+use std::io;
+use std::io::Read;
+
+const METADATA_PATH: &str = "/dev/block/by-name/metadata";
+
+/// loads payload metadata from /dev/block/by-name/metadata
+pub fn load() -> io::Result<Metadata> {
+    info!("loading payload metadata...");
+
+    let mut f = File::open(METADATA_PATH)?;
+    // metadata partition is
+    //  4 bytes : size(N) in big endian
+    //  N bytes : message for Metadata
+    let mut buf = [0u8; 4];
+    f.read_exact(&mut buf)?;
+    let size = i32::from_be_bytes(buf);
+
+    Ok(Metadata::parse_from_reader(&mut f.take(size as u64))?)
+}
diff --git a/microdroid_manager/src/signature.rs b/microdroid_manager/src/signature.rs
deleted file mode 100644
index 4f06885..0000000
--- a/microdroid_manager/src/signature.rs
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright 2021, The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-//! MicrodroidSignature from /dev/block/by-name/signature
-//! TODO(jooyung): migrate to "metadata" partition
-
-use log::info;
-use microdroid_signature::microdroid_signature::MicrodroidSignature;
-use protobuf::Message;
-use std::fs::File;
-use std::io;
-use std::io::Read;
-
-const SIGNATURE_PATH: &str = "/dev/block/by-name/signature";
-
-/// loads microdroid_signature from /dev/block/by-name/signature
-pub fn load() -> io::Result<MicrodroidSignature> {
-    info!("loading signature...");
-
-    let mut f = File::open(SIGNATURE_PATH)?;
-    // signature partition is
-    //  4 bytes : size(N) in big endian
-    //  N bytes : message for MicrodroidSignature
-    let mut buf = [0u8; 4];
-    f.read_exact(&mut buf)?;
-    let size = i32::from_be_bytes(buf);
-
-    Ok(MicrodroidSignature::parse_from_reader(&mut f.take(size as u64))?)
-}
