diff --git a/lib/molecule.js b/lib/molecule.js
index <HASH>..<HASH> 100644
--- a/lib/molecule.js
+++ b/lib/molecule.js
@@ -37,10 +37,12 @@ module.exports = function (inchi) {
      @param {Number} from Source atom
      @param {Number} to   Target atom
      */
-    Molecule.prototype.addBond = function (from, to) {
+    Molecule.prototype.addBond = function (from, to, order) {
         var self = this;
 
-        self.bonds.push({from: from, to: to});
+        order = order || 1;
+
+        self.bonds.push({from: from, to: to, order: order});
     };
 
     /**
@@ -53,18 +55,9 @@ module.exports = function (inchi) {
      */
     Molecule.prototype.getInchi = function (callback) {
         var self = this,
-            mol = {
-                atom: []
-            };
-
-        self.atoms.forEach(function (atom) {
-            mol.atom.push({
-                elname: atom,
-                neighbor: []
-            });
-        });
+            mol = new inchilib.Molecule(this);
 
-        inchilib.GetINCHI(mol, function (err, result) {
+        mol.GetInChI(function (err, result) {
             callback(err, result.inchi);
         });
     };
molecule: delegate prep, calculation to addon