diff --git a/ts/api/extend.ts b/ts/api/extend.ts
index 917bb58915f29539a70e32d205e9aaa7d68ecc6b..d336eb0a78ba3384723881b7de2a5f6bd07bfab4 100644
--- a/ts/api/extend.ts
+++ b/ts/api/extend.ts
@@ -1,4 +1,4 @@
-import container = require('../class/Container');
+import container from '../class/Container';
 
 /**
  * Extending dependencies
@@ -11,4 +11,4 @@ function extendAPI(name: string, callback: Function): void {
   container.extend(name, callback);
 }
 
-export = extendAPI;
+export default extendAPI;
diff --git a/ts/api/format.ts b/ts/api/format.ts
index 0f0e8cdb95fe3246aeb43ee0bb47a52587e7530e..9a0670cf586ca411c223029ab20eb30a4420a0bf 100644
--- a/ts/api/format.ts
+++ b/ts/api/format.ts
@@ -1,4 +1,4 @@
-import Registry = require('../class/Registry');
+import Registry from '../class/Registry';
 
 type Format = Function;
 
@@ -27,4 +27,4 @@ function formatAPI(nameOrFormatMap?: string|Object, callback?: Format): any {
   }
 }
 
-export = formatAPI;
+export default formatAPI;
diff --git a/ts/api/option.ts b/ts/api/option.ts
index a0890dedc182aa8589386a42a4f7a07f6b9dbc49..04e5844459d7dbcc096afda6916d57a564a782e1 100644
--- a/ts/api/option.ts
+++ b/ts/api/option.ts
@@ -1,4 +1,4 @@
-import OptionRegistry = require('../class/OptionRegistry');
+import OptionRegistry from '../class/OptionRegistry';
 
 // instantiate
 var registry = new OptionRegistry();
@@ -17,4 +17,4 @@ function optionAPI(nameOrOptionMap?: string|Object): any {
   }
 }
 
-export = optionAPI;
+export default optionAPI;
diff --git a/ts/class/Container.ts b/ts/class/Container.ts
index 58bfb96b354ad5d91353053af849dda07cecee8b..d1259429fda91302e4ae07c263385b86edc4f804 100644
--- a/ts/class/Container.ts
+++ b/ts/class/Container.ts
@@ -1,5 +1,5 @@
-import RandExp = require('randexp');
-import option = require('../api/option');
+import RandExp from 'randexp';
+import option from '../api/option';
 
 // set maximum default, see #193
 RandExp.prototype.max = 10;
@@ -93,4 +93,4 @@ class Container {
 // instantiate
 var container = new Container();
 
-export = container;
+export default container;
diff --git a/ts/class/OptionRegistry.ts b/ts/class/OptionRegistry.ts
index ee2ade10a27999f5761672607e0078d33d760f12..a3fd0d6d562c88c636d13828fb13d927825f3efd 100644
--- a/ts/class/OptionRegistry.ts
+++ b/ts/class/OptionRegistry.ts
@@ -1,4 +1,4 @@
-import Registry = require('./Registry');
+import Registry from './Registry';
 
 type Option = boolean|number|Function;
 
@@ -22,4 +22,4 @@ class OptionRegistry extends Registry<Option> {
   }
 }
 
-export = OptionRegistry;
+export default OptionRegistry;
diff --git a/ts/class/Registry.ts b/ts/class/Registry.ts
index 09a258436f524b89f14572abaef946e4c34786e9..395790f95baed9fbbe0e05a9ab116c063f247862 100644
--- a/ts/class/Registry.ts
+++ b/ts/class/Registry.ts
@@ -52,4 +52,4 @@ class Registry<T> {
 
 }
 
-export = Registry;
+export default Registry;
diff --git a/ts/core/clean.ts b/ts/core/clean.ts
index b23f1726f269f4e88d485412f46d6dddfe9e297c..993da66841947bd5d98f8a50232cb6f03cd28c9c 100644
--- a/ts/core/clean.ts
+++ b/ts/core/clean.ts
@@ -67,7 +67,7 @@ function removeProps(obj, key?, parent?, required?) {
   }
 }
 
-export = function(obj: any, required?: Array<string>) {
+export default function(obj: any, required?: Array<string>) {
   removeProps(obj, undefined, undefined, required);
   return obj;
 };
diff --git a/ts/core/error.ts b/ts/core/error.ts
index dca446e03de696dab7dff007d3190d6d263fc861..e80305080ad02e636c6cdca698edb07d507faec5 100644
--- a/ts/core/error.ts
+++ b/ts/core/error.ts
@@ -16,4 +16,4 @@ class ParseError extends Error {
   }
 }
 
-export = ParseError;
+export default ParseError;
diff --git a/ts/core/infer.ts b/ts/core/infer.ts
index 91a877785483793cfd9ff87c467dcb54358b82b3..c173f2cd6d34f3963f03f302884d377d98f35e35 100644
--- a/ts/core/infer.ts
+++ b/ts/core/infer.ts
@@ -85,4 +85,4 @@ function inferType(obj: Object, schemaPath: SchemaPath): string {
   }
 }
 
-export = inferType;
+export default inferType;
diff --git a/ts/core/random.ts b/ts/core/random.ts
index e67dbe3f52bc30b737f1d32c37309ebf39c3b464..465b095e9826527bd73c9368a6fe2007680d72f0 100644
--- a/ts/core/random.ts
+++ b/ts/core/random.ts
@@ -1,6 +1,6 @@
 /// <reference path="../index.d.ts" />
 
-var option = require('../api/option');
+import option from '../api/option';
 
 /**
  * Returns random element of a collection
@@ -83,7 +83,7 @@ function number(min?: number, max?: number, defMin?: number, defMax?: number, ha
   return result;
 }
 
-export = {
+export default {
   pick: pick,
   shuffle: shuffle,
   number: number,
diff --git a/ts/core/run.ts b/ts/core/run.ts
index ad615682d41b430ed0d1108ace8d3b7e1990b28e..0ad51f7ddbd4cb05462b59eb726c42231792ed7e 100644
--- a/ts/core/run.ts
+++ b/ts/core/run.ts
@@ -1,9 +1,9 @@
-import deref = require('deref');
+import deref from 'deref';
 
-import container = require('../class/Container');
-import traverse = require('./traverse');
-import random = require('./random');
-import utils = require('./utils');
+import container from '../class/Container';
+import traverse from './traverse';
+import random from './random';
+import utils from './utils';
 
 function isKey(prop: string): boolean {
   return prop === 'enum' || prop === 'default' || prop === 'required' || prop === 'definitions';
@@ -85,4 +85,4 @@ function run(schema, refs?, ex?) {
   }
 }
 
-export = run;
+export default run;
diff --git a/ts/core/traverse.ts b/ts/core/traverse.ts
index 8ceb630badb785f9b4851f391a6c1e3107449867..1bef96c57106c02a36c215aeb2ccaf3ee0b8a76b 100644
--- a/ts/core/traverse.ts
+++ b/ts/core/traverse.ts
@@ -1,8 +1,8 @@
-import random = require('./random');
-import ParseError = require('./error');
-import inferType = require('./infer');
-import types = require('../types/index');
-import option = require('../api/option');
+import random from './random';
+import ParseError from './error';
+import inferType from './infer';
+import types from '../types/index';
+import option from '../api/option';
 
 function isExternal(schema: IGeneratorSchema): boolean {
   return schema.faker || schema.chance || schema.casual;
@@ -94,4 +94,4 @@ function traverse(schema: JsonSchema, path: SchemaPath, resolve: Function) {
   return copy;
 }
 
-export = traverse;
+export default traverse;
diff --git a/ts/core/utils.ts b/ts/core/utils.ts
index 36365fd981939e494708da70201f3a158a2f2e0d..fbcaca388181bb604d2943ca52abc39a2a49ddb9 100644
--- a/ts/core/utils.ts
+++ b/ts/core/utils.ts
@@ -78,7 +78,7 @@ function merge(a: Object, b: Object): Object {
   return a;
 }
 
-export = {
+export default {
   getSubAttribute: getSubAttribute,
   hasProperties: hasProperties,
   typecast: typecast,
diff --git a/ts/generators/boolean.ts b/ts/generators/boolean.ts
index 9c74a156a89b1c242578950aec1a099080b8afc2..d7dd30a59743fc3534a6d6a40dc103af38cc2bf1 100644
--- a/ts/generators/boolean.ts
+++ b/ts/generators/boolean.ts
@@ -1,4 +1,4 @@
-var option = require('../api/option');
+import option from '../api/option';
 
 /**
  * Generates randomized boolean value.
@@ -9,4 +9,4 @@ function booleanGenerator(): boolean {
   return option('random')() > 0.5;
 }
 
-export = booleanGenerator;
+export default booleanGenerator;
diff --git a/ts/generators/coreFormat.ts b/ts/generators/coreFormat.ts
index bd5058edeae743e4059477ed0d4b2c4af7617000..0b84eabc0f6f72c8ead651e47fbea81e4981e393 100644
--- a/ts/generators/coreFormat.ts
+++ b/ts/generators/coreFormat.ts
@@ -1,4 +1,4 @@
-import container = require('../class/Container');
+import container from '../class/Container';
 var randexp = container.get('randexp');
 
 /**
@@ -24,4 +24,4 @@ function coreFormatGenerator(coreFormat: string): string {
   });
 }
 
-export = coreFormatGenerator;
+export default coreFormatGenerator;
diff --git a/ts/generators/dateTime.ts b/ts/generators/dateTime.ts
index c39497b01195d0c15554e12bbf21a17f862dbbf9..418502d996baca788f9826717ed6af0edb0f8068 100644
--- a/ts/generators/dateTime.ts
+++ b/ts/generators/dateTime.ts
@@ -1,4 +1,4 @@
-import random = require('../core/random');
+import random from '../core/random';
 
 /**
  * Generates randomized date time ISO format string.
@@ -9,4 +9,4 @@ function dateTimeGenerator(): string {
   return new Date(random.number(0, 100000000000000)).toISOString();
 }
 
-export = dateTimeGenerator;
+export default dateTimeGenerator;
diff --git a/ts/generators/ipv4.ts b/ts/generators/ipv4.ts
index 82266aa266592494764d95a3e51742c9e44423e4..5401afc61653a475c58ead3e3b53c4c075aa8c4a 100644
--- a/ts/generators/ipv4.ts
+++ b/ts/generators/ipv4.ts
@@ -1,4 +1,4 @@
-import random = require('../core/random');
+import random from '../core/random';
 
 /**
  * Generates randomized ipv4 address.
@@ -11,4 +11,4 @@ function ipv4Generator(): string {
   }).join('.');
 }
 
-export = ipv4Generator;
+export default ipv4Generator;
diff --git a/ts/generators/null.ts b/ts/generators/null.ts
index a24475603346cb93c1f44f9f1a14edd6be5b778a..a3c7aa71ba46cfb85bc5f687e1e24c59927507f4 100644
--- a/ts/generators/null.ts
+++ b/ts/generators/null.ts
@@ -7,4 +7,4 @@ function nullGenerator(): any {
   return null;
 }
 
-export = nullGenerator;
+export default nullGenerator;
diff --git a/ts/generators/thunk.ts b/ts/generators/thunk.ts
index 8fb5492cf12c0fb8d42d1e614f587bc4b6257ad0..44f48deb722e6f7b381c209125612a1f7c83111d 100644
--- a/ts/generators/thunk.ts
+++ b/ts/generators/thunk.ts
@@ -1,5 +1,5 @@
-import words = require('../generators/words');
-import random = require('../core/random');
+import words from '../generators/words';
+import random from '../core/random';
 
 /**
  * Helper function used by thunkGenerator to produce some words for the final result.
@@ -34,4 +34,4 @@ function thunkGenerator(min: number = 0, max: number = 140): string {
   return result;
 }
 
-export = thunkGenerator;
+export default thunkGenerator;
diff --git a/ts/generators/words.ts b/ts/generators/words.ts
index b61a297fda449aac04d1736cb1c816cd65c37a1c..eb1111d193db7356b8a1b3a2b6b235dae12ab55c 100644
--- a/ts/generators/words.ts
+++ b/ts/generators/words.ts
@@ -1,4 +1,4 @@
-import random = require('../core/random');
+import random from '../core/random';
 
 var LIPSUM_WORDS = ('Lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore'
   + ' et dolore magna aliqua Ut enim ad minim veniam quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea'
@@ -17,4 +17,4 @@ function wordsGenerator(length: number): string[] {
   return words.slice(0, length);
 }
 
-export = wordsGenerator;
+export default wordsGenerator;
diff --git a/ts/index.ts b/ts/index.ts
index d466c26dc2a66211856ba6f2863b2b717e06193d..a66f3475e936ee71341ff5eaf39181fcf4d7688d 100644
--- a/ts/index.ts
+++ b/ts/index.ts
@@ -1,7 +1,7 @@
-import container = require('./class/Container');
-import format = require('./api/format');
-import option = require('./api/option');
-import run = require('./core/run');
+import container from './class/Container';
+import format from './api/format';
+import option from './api/option';
+import run from './core/run';
 
 var jsf = <jsfAPI>function(schema: JsonSchema, refs?: any) {
   return run(schema, refs);
@@ -21,4 +21,4 @@ jsf.extend = function(name: string, cb: Function) {
 
 jsf.version = VERSION;
 
-export = jsf;
+export default jsf;
diff --git a/ts/types/array.ts b/ts/types/array.ts
index a8871aa2f3df484213ea32dd3118872d187833ed..712b383349908ff6ccf36c79e86b19a7aea52dc5 100644
--- a/ts/types/array.ts
+++ b/ts/types/array.ts
@@ -1,7 +1,7 @@
-import random = require('../core/random');
-import utils = require('../core/utils');
-import ParseError = require('../core/error');
-import option = require('../api/option');
+import random from '../core/random';
+import utils from '../core/utils';
+import ParseError from '../core/error';
+import option from '../api/option';
 
 // TODO provide types
 function unique(path: SchemaPath, items, value, sample, resolve, traverseCallback: Function) {
@@ -96,4 +96,4 @@ var arrayType: FTypeGenerator = function arrayType(value: IArraySchema, path: Sc
   return items;
 };
 
-export = arrayType;
+export default arrayType;
diff --git a/ts/types/boolean.ts b/ts/types/boolean.ts
index 9afa0a8eb538552e42ea5d5d7ab36b1e5d8fb972..beb9e2bd30e565b93d26244c9b0ce5a3df1e96a6 100644
--- a/ts/types/boolean.ts
+++ b/ts/types/boolean.ts
@@ -1,5 +1,5 @@
-import booleanGenerator = require('../generators/boolean');
+import booleanGenerator from '../generators/boolean';
 
 var booleanType: FTypeGenerator = booleanGenerator;
 
-export = booleanType;
+export default booleanType;
diff --git a/ts/types/external.ts b/ts/types/external.ts
index f3c5258f901e1574bf6eb1f8b3358e190ff4ef52..398e7e4e14db6da4dc33dcd0738ca7a53261e1f8 100644
--- a/ts/types/external.ts
+++ b/ts/types/external.ts
@@ -1,6 +1,6 @@
-import utils = require('../core/utils');
+import utils from '../core/utils';
 
-import container = require('../class/Container');
+import container from '../class/Container';
 
 type ExternalParameters = any[];
 
@@ -53,4 +53,4 @@ var externalType: FTypeGenerator = function externalType(value: JsonSchema, path
   return utils.typecast(result, value.type);
 };
 
-export = externalType;
+export default externalType;
diff --git a/ts/types/index.ts b/ts/types/index.ts
index e2ca988ab2d27fb7f09c39d6fc80b76b5a8162b5..3d37cdca5596a0e13e1f5e6482f6a99f7111f813 100644
--- a/ts/types/index.ts
+++ b/ts/types/index.ts
@@ -1,11 +1,11 @@
-import _boolean = require('./boolean');
-import _null = require('./null');
-import _array = require('./array');
-import _integer = require('./integer');
-import _number = require('./number');
-import _object = require('./object');
-import _string = require('./string');
-import _external = require('./external');
+import _boolean from './boolean';
+import _null from './null';
+import _array from './array';
+import _integer from './integer';
+import _number from './number';
+import _object from './object';
+import _string from './string';
+import _external from './external';
 
 var typeMap: {
   [type: string]: FTypeGenerator;
@@ -20,4 +20,4 @@ var typeMap: {
   external: _external
 };
 
-export = typeMap;
+export default typeMap;
diff --git a/ts/types/integer.ts b/ts/types/integer.ts
index 211ab08f2e592ef838a055a43fb1aa12e12bf011..0bdddb6030226a70cb572869b34c1a4805a22d9f 100644
--- a/ts/types/integer.ts
+++ b/ts/types/integer.ts
@@ -1,4 +1,4 @@
-import number = require('./number');
+import number from './number';
 
 // The `integer` type is just a wrapper for the `number` type. The `number` type
 // returns floating point numbers, and `integer` type truncates the fraction
@@ -11,4 +11,4 @@ var integerType: FTypeGenerator = function integerType(value: INumberSchema): nu
   return generated > 0 ? Math.floor(generated) : Math.ceil(generated);
 };
 
-export = integerType;
+export default integerType;
diff --git a/ts/types/null.ts b/ts/types/null.ts
index 9e8c61f6dbb2e7220727403b767c01789f0204b3..b3086f32cf4fc712767a2f5d02ae0afedc8abcf7 100644
--- a/ts/types/null.ts
+++ b/ts/types/null.ts
@@ -1,6 +1,5 @@
-import nullGenerator = require('../generators/null');
+import nullGenerator from '../generators/null';
 
 var nullType: FTypeGenerator = nullGenerator;
 
-export = nullType;
-
+export default nullType;
diff --git a/ts/types/number.ts b/ts/types/number.ts
index 4336cccc0ac436959b914d0477ae978572298951..dd1750fe50521274fe0cfdd194cf0d702782c15b 100644
--- a/ts/types/number.ts
+++ b/ts/types/number.ts
@@ -1,4 +1,4 @@
-import random = require('../core/random');
+import random from '../core/random';
 
 var MIN_INTEGER = -100000000,
     MAX_INTEGER = 100000000;
@@ -32,4 +32,4 @@ var numberType: FTypeGenerator = function numberType(value: INumberSchema): numb
   return random.number(min, max, undefined, undefined, true);
 };
 
-export = numberType;
+export default numberType;
diff --git a/ts/types/object.ts b/ts/types/object.ts
index 933b21d95f40afb0adf401197059c6d02dceba85..f665a0a28df6764cce26d56127abd77e2710a960 100644
--- a/ts/types/object.ts
+++ b/ts/types/object.ts
@@ -1,10 +1,10 @@
-import container = require('../class/Container');
-import random = require('../core/random');
-import words = require('../generators/words');
-import clean = require('../core/clean');
-import utils = require('../core/utils');
-import option = require('../api/option');
-import ParseError = require('../core/error');
+import container from '../class/Container';
+import random from '../core/random';
+import words from '../generators/words';
+import clean from '../core/clean';
+import utils from '../core/utils';
+import option from '../api/option';
+import ParseError from '../core/error';
 
 var randexp = container.get('randexp');
 
@@ -126,4 +126,4 @@ var objectType: FTypeGenerator = function objectType(value: IObjectSchema, path,
   return clean(traverseCallback(props, path.concat(['properties']), resolve), value.required);
 };
 
-export = objectType;
+export default objectType;
diff --git a/ts/types/string.ts b/ts/types/string.ts
index 2dfa3cab7a671a9f2033d798f281b90ec5efaf4a..5055bb94ed1092604232dbd999fbc2884e4fce73 100644
--- a/ts/types/string.ts
+++ b/ts/types/string.ts
@@ -1,11 +1,11 @@
-import thunk = require('../generators/thunk');
-import ipv4 = require('../generators/ipv4');
-import dateTime = require('../generators/dateTime');
-import coreFormat = require('../generators/coreFormat');
-import format = require('../api/format');
-import option = require('../api/option');
+import thunk from '../generators/thunk';
+import ipv4 from '../generators/ipv4';
+import dateTime from '../generators/dateTime';
+import coreFormat from '../generators/coreFormat';
+import format from '../api/format';
+import option from '../api/option';
 
-import container = require('../class/Container');
+import container from '../class/Container';
 var randexp = container.get('randexp');
 
 function generateFormat(value: IStringSchema): string {
@@ -65,4 +65,4 @@ var stringType: FTypeGenerator = function stringType(value: IStringSchema): stri
   return output;
 };
 
-export = stringType;
+export default stringType;