diff --git a/Volume.cpp b/Volume.cpp
new file mode 100644
index 0000000..aaccb2b
--- /dev/null
+++ b/Volume.cpp
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2008 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.
+ */
+
+#include <stdio.h>
+#include <errno.h>
+#include <string.h>
+
+#define LOG_TAG "Vold"
+
+#include <cutils/log.h>
+
+#include "Volume.h"
+
+Volume::Volume(const char *label, const char *mount_point) {
+    mLabel = strdup(label);
+    mMountpoint = strdup(mount_point);
+    mState = Volume::State_Init;
+}
+
+Volume::~Volume() {
+    free(mLabel);
+    free(mMountpoint);
+}
+
+int Volume::handleDiskInsertion(const char *dp, int maj, int min, int nr_parts) {
+    errno = ENOSYS;
+    return -1;
+}
+
+void Volume::setState(int state) {
+    LOGD("Volume %s state changing %d -> %d", mLabel, mState, state);
+    mState = state;
+}
