diff --git a/Makefile b/Makefile
index 13268462c32bd99833b04b995f26f553a39774c7..7451fbde34d6ef996856caaa1a24b998bcb8982c 100644
--- a/Makefile
+++ b/Makefile
@@ -8,6 +8,7 @@ lint:
 publish:
 	webpack ./
 	uglifyjs dist/markdown-it-imsize.js > dist/markdown-it-imsize.min.js
+	bower register markdown-it-imsize https://github.com/tatsy/markdown-it-imsize.git
 
 test: lint
 	mocha
diff --git a/bower.json b/bower.json
index 0a8bfc7151c5d07a614a20be1c4be1919ec621f5..a9eff320b8abae91e92292573e3aa5ae21572d6e 100644
--- a/bower.json
+++ b/bower.json
@@ -18,6 +18,6 @@
     "test",
     "helpers",
     "Makefile",
-    "index*"
+    "lib"
   ]
 }
diff --git a/lib/imsize/index.js b/lib/imsize/index.js
index 836b97ecb2b39f379dad9dffcff07cc7cf4e860f..03788db5616ac552f4e3b701e7dc1874d4fd6e6c 100644
--- a/lib/imsize/index.js
+++ b/lib/imsize/index.js
@@ -28,7 +28,7 @@ function lookup(buffer, filepath) {
 }
 
 function asyncFileToBuffer(filepath, callback) {
-  fs.oepn(filepath, 'r', function(err0, descriptor) {
+  fs.open(filepath, 'r', function(err0, descriptor) {
     if (err0) {
       return callback(err0);
     }
diff --git a/package.json b/package.json
index 0c4005815a515f7032ac88630073e37f04d9a8fb..953505aec6cde35430673d04d426e0458d7b423d 100644
--- a/package.json
+++ b/package.json
@@ -29,6 +29,7 @@
     "markdown-it": "^3.0.4",
     "markdown-it-testgen": "^0.1.4",
     "mocha": "^2.1.0",
+    "should": "^5.0.0",
     "uglify-js": "^2.4.16",
     "webpack": "^1.5.3"
   }
diff --git a/test/test.js b/test/test.js
index 753eccc6a004bd6e6a34a70248b174f91128f6bf..ca4c1a12b2fd215d2e6ed7f4a6a2cc42ea20cfb5 100644
--- a/test/test.js
+++ b/test/test.js
@@ -3,6 +3,7 @@
 var assert = require('assert');
 var path = require('path');
 var generate = require('markdown-it-testgen');
+var should = require('should');
 
 describe('markdown-it-imsize', function() {
   var md = require('markdown-it')({
@@ -23,9 +24,10 @@ describe('markdown-it-imsize (autofill)', function() {
 });
 
 describe('image size detector', function() {
+  var imsize = require('../lib/imsize');
+  var types = require('../lib/imsize/types');
+
   it('image size detector', function(done) {
-    var imsize = require('../lib/imsize');
-    var types = require('../lib/imsize/types');
     types.forEach(function(type) {
       var dim = imsize('./test/img/lena.' + type);
       assert.equal(dim.width, 128);
@@ -33,4 +35,18 @@ describe('image size detector', function() {
     });
     done();
   });
+
+  it('imsize detector anync', function() {
+    types.forEach(function(type) {
+      imsize('./test/img/lena.' + type, function(err, dim) {
+        assert.equal(dim.width, 128);
+        assert.equal(dim.height, 128);
+      });
+    });
+  });
+
+  it('invalid operation', function(done) {
+    (function() { imsize('./test/img/lena.svg') }).should.throw();
+    done();
+  });
 });