diff --git a/model/sync-digest.h b/model/sync-digest.h
index fca9798..d0c76f5 100644
--- a/model/sync-digest.h
+++ b/model/sync-digest.h
@@ -44,6 +44,12 @@
   Digest ();
 
   /**
+   * @brief Reset digest to the initial state
+   */
+  void
+  reset ();
+
+  /**
    * @brief Destructor
    */
   ~Digest ();
@@ -65,7 +71,7 @@
   operator == (Digest &digest);
 
   /**
-   * @brief Combine digests
+   * @brief Add existing digest to digest calculation
    * @param src digest to combine with
    *
    * The result of this combination is  hash (hash (...))
@@ -73,14 +79,42 @@
   Digest &
   operator << (const Digest &src);
 
+  /**
+   * @brief Add string to digest calculation
+   * @param str string to put into digest
+   */
+  inline Digest &
+  operator << (const std::string &str);
 
-  
+  inline Digest &
+  operator << (uint32_t value);
+
+  // /**
+  //  * @brief Add integer to digest calculation
+  //  * @param value the value to add to the digest
+  //  */
+  // template<class INT>
+  // inline Digest &
+  // operator << (INT value);
   
 private:
   /**
+   * @brief Disabled copy operator 
+   */
+  Digest &
+  operator = (Digest &digest) { return *this; }
+  
+  /**
    * @brief Finalize digest. All subsequent calls to "operator <<" will fire an exception
    */
-  void Finalize ();
+  void
+  finalize ();
+
+  /**
+   * @brief Add size bytes of buffer to the hash
+   */
+  void
+  update (const uint8_t *buffer, size_t size);
   
 private:
   EVP_MD_CTX *m_context;
@@ -90,6 +124,30 @@
 
 struct DigestCalculationError : virtual boost::exception { };
 
+
+Digest &
+Digest::operator << (const std::string &str)
+{
+  update (reinterpret_cast<const uint8_t*> (str.c_str ()), str.size ());
+  return *this;
+}
+
+inline Digest &
+Digest::operator << (uint32_t value)
+{
+  update (reinterpret_cast<const uint8_t*> (&value), sizeof (uint32_t));
+  return *this;
+}
+
+// template<class INT>
+// Digest &
+// Digest::operator << (INT value)
+// {
+//   update (&value, sizeof (INT));
+//   return *this;
+// }
+
+
 } // Sync
 
 #endif // SYNC_DIGEST_H
