diff --git a/include/object-db-file.h b/include/object-db-file.h
index dea8582..1eb1ef8 100644
--- a/include/object-db-file.h
+++ b/include/object-db-file.h
@@ -4,8 +4,6 @@
 #include "object-db.h"
 #include <stdio.h>
 #include <fstream>
-#include <ifstream>
-#include <ofstream>
 #include <sstream>
 #include <deque>
 #include <boost/thread/locks.hpp>
@@ -50,7 +48,7 @@
   typedef boost::unique_lock<Mutex> ULock;
 
   ObjectDBFile(const string &filename);
-  virtual ~ObjectDBFile(){}
+  virtual ~ObjectDBFile();
 
   // reserve the "address" table for n COs; must reserve before
   // write anything (unless reserved quota has not be consumed yet)
@@ -149,4 +147,7 @@
 void
 readBytes(istream &in, Bytes &bytes);
 
+char *
+head(const Bytes &bytes);
+
 #endif
diff --git a/include/object-db.h b/include/object-db.h
index 7daa37c..207e0b3 100644
--- a/include/object-db.h
+++ b/include/object-db.h
@@ -35,7 +35,7 @@
 
   // size in terms of number of COs
   virtual int
-  size() = 0 const;
+  size() = 0;
 
 };
 
diff --git a/src/object-db-file.cpp b/src/object-db-file.cpp
index 526ea4e..26f8fb3 100644
--- a/src/object-db-file.cpp
+++ b/src/object-db-file.cpp
@@ -1,6 +1,12 @@
 #include "object-db-file.h"
 #include <assert.h>
 
+char *
+head(const Bytes &bytes)
+{
+  return (char *)&bytes[0];
+}
+
 void
 writeBytes(ostream &out, const Bytes &bytes)
 {
@@ -26,9 +32,9 @@
                 , m_filename(filename)
                 // This ensures file with filename exists (assuming having write permission)
                 // This is needed as file_lock only works with existing file
-                , m_ostream(m_filename, ios_base::binary | ios_base::app)
-                , m_istream(m_filename, ios_base::binary | ios_base::in)
-                , m_filelock(m_filename)
+                , m_ostream(m_filename.c_str(), ios_base::binary | ios_base::app)
+                , m_istream(m_filename.c_str(), ios_base::binary | ios_base::binary)
+                , m_filelock(m_filename.c_str())
 {
   int magic;
   ReadLock(m_filelock);
@@ -51,7 +57,7 @@
 void
 ObjectDBFile::init(int capacity)
 {
-  WriteLock(m_filelock);
+  WriteLock(*m_filelock);
   if (m_initialized)
   {
     throwException("Trying to init already initialized ObjectDBFile object" + m_filename);
@@ -66,7 +72,7 @@
   writeInt(m_ostream, m_size);
   m_initialized = true;
 
-  int count = size;
+  int count = m_cap;
   int offset = 0;
   while (count-- > 0)
   {
@@ -126,7 +132,7 @@
   {
     SLock(m_cacheLock);
     // no need to read file if found in cache
-    if (m_dummyCache.find(m_index) != map::end)
+    if (m_dummyCache.find(m_index) != m_dummyCache.end())
     {
       int index = m_index;
       m_index++;
@@ -177,7 +183,7 @@
 }
 
 void
-ObjectDBFile::updateSzie()
+ObjectDBFile::updateSize()
 {
   int pos = m_istream.tellg();
   m_istream.seekg(2 * sizeof(int), ios::beg);
@@ -219,7 +225,7 @@
 }
 
 void
-rewind()
+ObjectDBFile::rewind()
 {
   ReadLock(m_filelock);
   m_index = 0;
