diff --git a/buffers/buffers-tests.ts b/buffers/buffers-tests.ts
new file mode 100644
index 0000000000..0a51f97ae4
--- /dev/null
+++ b/buffers/buffers-tests.ts
@@ -0,0 +1,49 @@
+///
+import Buffers = require('buffers');
+
+var any: any;
+var num: number;
+var str: string;
+var buf = new Buffer([1, 2, 3]);
+var bufs: Buffers = new Buffers(); // with new, as type
+
+bufs = Buffers(); // no new
+
+// with self
+bufs = Buffers(bufs);
+bufs = new Buffers(bufs);
+
+// with array of buffers.
+bufs = Buffers([buf, buf]);
+bufs = new Buffers([buf, buf]);
+
+num = bufs.push(buf);
+num = bufs.push(buf, buf);
+
+num = bufs.unshift(buf);
+num = bufs.unshift(buf, buf);
+
+buf = bufs.slice();
+buf = bufs.slice(num);
+buf = bufs.slice(num, num);
+
+bufs = bufs.splice(num);
+bufs = bufs.splice(num, num);
+bufs = bufs.splice(num, num, buf);
+bufs = bufs.splice(num, num, buf, buf);
+
+num = bufs.copy(buf);
+num = bufs.copy(buf, num, num, num);
+
+any = bufs.get(num);
+bufs.set(num, any);
+
+num = bufs.indexOf(str);
+num = bufs.indexOf(str, num);
+num = bufs.indexOf(buf);
+num = bufs.indexOf(buf, num);
+
+buf = bufs.toBuffer();
+
+str = buf.toString();
+str = buf.toString(any, num, num);
diff --git a/buffers/buffers.d.ts b/buffers/buffers.d.ts
new file mode 100644
index 0000000000..fad36d3c49
--- /dev/null
+++ b/buffers/buffers.d.ts
@@ -0,0 +1,36 @@
+// Type definitions for buffers 0.1.1
+// Project: https://github.com/substack/node-buffers
+// Definitions by: Robert Hencke
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+///
+
+declare module "buffers" {
+
+ interface BuffersStatics {
+ new (bufs?: Buffer[]|Buffers): Buffers;
+ (bufs?: Buffer[]| Buffers): Buffers;
+ prototype: Buffers;
+ }
+
+ interface Buffers {
+ buffers: Buffer[];
+ length: number;
+
+ push(...items: Buffer[]): number;
+ unshift(...items: Buffer[]): number;
+ slice(i?: number, j?: number): Buffer;
+ splice(i: number, howMany?: number, ...items: Buffer[]): Buffers;
+ copy(dst: Buffer, dstStart?: number, start?: number, end?: number): number;
+ get(i: number): any;
+ set(i: number, b: any): void;
+ indexOf(needle: string|Buffer, offset?: number): number;
+ toBuffer(): Buffer;
+ toString(encoding?: any, start?: number, end?: number): string;
+ }
+
+ var Buffers: BuffersStatics;
+
+ export = Buffers;
+
+}