diff --git a/Q/q-tests.spec.ts b/Q/q-tests.spec.ts
new file mode 100644
index 0000000000..510a50610c
--- /dev/null
+++ b/Q/q-tests.spec.ts
@@ -0,0 +1,27 @@
+///
+///
+
+import q = module("q");
+
+describe("q", function () {
+ it("should return", function (done) {
+ q({ myValue: true }).then(function (obj) {
+
+ if (obj.myValue) done();
+ else done("didn't work =(");
+ },
+ (err) => done(err));
+ });
+
+ it("should process all", function (done: (err?) => void) {
+ q.all([q(1), q(2), q(3)]).then(function (arr: number[]) {
+ var sum = arr.reduce(function (memo, cur) {
+ return memo + cur;
+ }, 0);
+
+ if (sum === 6) done();
+ else done({ actual: sum });
+ },
+ (err) => done(err));
+ });
+});
\ No newline at end of file
diff --git a/Q/q.module.d.ts b/Q/q.module.d.ts
new file mode 100644
index 0000000000..38b19aafc2
--- /dev/null
+++ b/Q/q.module.d.ts
@@ -0,0 +1,26 @@
+///
+
+module "q" {
+ export function try(method: Function, ...args: any[]): Qpromise;
+ export function fbind(method: Function, ...args: any[]): Qpromise;
+ export function fcall(method: Function, ...args: any[]): Qpromise;
+ export function all(promises: Qpromise[]): Qpromise;
+ export function allResolved(promises: Qpromise[]): Qpromise;
+ export function spread(onFulfilled: Function, onRejected: Function): Qpromise;
+ export function timeout(ms: number): Qpromise;
+ export function delay(ms: number): Qpromise;
+ export function delay(value: any, ms: number): Qpromise;
+ export function isFulfilled(): bool;
+ export function isRejected(): bool;
+ export function isPending(): bool;
+ export function valueOf(): any;
+ export function defer(): Qdeferred;
+ export function (value: any): Qpromise;
+ export function reject(): Qpromise;
+ export function promise(factory: { resolve: Function; reject: Function; notify: Function; }): Qpromise;
+ export function isPromise(value: any): bool;
+ export function async(generatorFunction: any): Qdeferred;
+ export function nextTick(callback: Function);
+ export var oneerror: any;
+ export var longStackJumpLimit: number;
+}
\ No newline at end of file
diff --git a/qcommon/q.d.ts b/qcommon/q.d.ts
deleted file mode 100644
index 9add54ab8e..0000000000
--- a/qcommon/q.d.ts
+++ /dev/null
@@ -1,58 +0,0 @@
-// Type definitions for q that meet the CommonJS module format.
-// Project: https://github.com/kriskowal/q
-// Definitions by: Barrie Nemetchek and Andrew Gaspar
-// Definitions: https://github.com/AndrewGaspar/DefinitelyTyped
-
-interface Qdeferred {
- promise: Qpromise;
- resolve(value: any): any;
- reject(reason: any);
- notify(value: any);
- makeNodeResolver(): Function;
-}
-
-interface Qpromise {
- fail(errorCallback: Function): Qpromise;
- fin(finallyCallback: Function): Qpromise;
- then(onFulfilled: Function, onRejected?: Function, onProgress?: Function): Qpromise;
- catch(onRejected: Function): Qpromise;
- progress(onProgress: Function): Qpromise;
- done(onFulfilled: Function, onRejected?: Function, onProgress?: Function): Qpromise;
- get (propertyName: String): Qpromise;
- set (propertyName: String, value: any): Qpromise;
- delete (propertyName: String): Qpromise;
- post(methodName: String, args: any[]): Qpromise;
- invoke(methodName: String, ...args: any[]): Qpromise;
- keys(): Qpromise;
- fapply(args: any[]): Qpromise;
- fcall(method: Function, ...args: any[]): Qpromise;
- timeout(ms: number): Qpromise;
- delay(ms: number): Qpromise;
- isFulfilled(): bool;
- isRejected(): bool;
- isPending(): bool;
- valueOf(): any;
-}
-
-export function try(method: Function, ...args: any[]): Qpromise;
-export function fbind(method: Function, ...args: any[]): Qpromise;
-export function fcall(method: Function, ...args: any[]): Qpromise;
-export function all(promises: Qpromise[]): Qpromise;
-export function allResolved(promises: Qpromise[]): Qpromise;
-export function spread(onFulfilled: Function, onRejected: Function): Qpromise;
-export function timeout(ms: number): Qpromise;
-export function delay(ms: number): Qpromise;
-export function delay(value: any, ms: number): Qpromise;
-export function isFulfilled(): bool;
-export function isRejected(): bool;
-export function isPending(): bool;
-export function valueOf(): any;
-export function defer(): Qdeferred;
-export function (value: any): Qpromise;
-export function reject(): Qpromise;
-export function promise(factory: { resolve: Function; reject: Function; notify: Function; }): Qpromise;
-export function isPromise(value: any): bool;
-export function async(generatorFunction: any): Qdeferred;
-export function nextTick(callback: Function);
-export var oneerror: any;
-export var longStackJumpLimit: number;
\ No newline at end of file