Repository: ViacomInc/data-point
Pull request #6 (2017-10-03 14:49:47)

refactor(entity/source): refactors source entity to request entity
keeps backward compatibility with source entity

#5


Patch:
diff --git a/README.md b/README.md
index 7fa93fa..c1c4f92 100644
--- a/README.md
+++ b/README.md
@@ -36,7 +36,7 @@ npm install --save data-point
   - [Built-in entities](#built-in-entities)
     - [Transform](#transform-entity)
     - [Entry](#entry-entity)
-    - [Source](#source-entity)
+    - [Request](#request-entity)
     - [Hash](#hash-entity)
     - [Collection](#collection-entity)
     - [Control](#control-entity)
@@ -87,8 +87,8 @@ const dataPoint = require('data-point').create()
 
 // add entities to dataPoint instance
 dataPoint.addEntities({
-  // remote source
-  'source:Planet': {
+  // remote request
+  'request:Planet': {
     // {value.planetId} injects the value from the accumulator
     url: 'https://swapi.co/api/planets/{value.planetId}'
   },
@@ -108,8 +108,8 @@ dataPoint.addEntities({
   // hash entity to resolve a Resident
   'hash:Resident': {
     // initial value will be the resolution of
-    // source:Resident
-    value: 'source:Resident',
+    // request:Resident
+    value: 'request:Resident',
     // each key gets mapped
     mapKeys: {
       name: '$name',
@@ -118,9 +118,9 @@ dataPoint.addEntities({
     }
   },
 
-  // dynamic source entity, the value that 
+  // dynamic request entity, the value that 
   // was passed to this entity becomes the url
-  'source:Resident': {
+  'request:Resident': {
     url: '{value}'
   }
 })
@@ -129,7 +129,7 @@ const data = {
   planetId: 1
 }
 
-dataPoint.transform('source:Planet | hash:Planet', data).then((acc) => {
+dataPoint.transform('request:Planet | hash:Planet', data).then((acc) => {
   console.log(acc.value)
   /*
   { name: 'Tatooine',
@@ -669,7 +669,7 @@ DataPoint comes with the following built-in entities:
 
 - [Transform](#transform-entity)
 - [Entry](#entry-entity)
-- [Source](#source-entity)
+- [Request](#request-entity)
 - [Hash](#hash-entity)
 - [Collection](#collection-entity)
 - [Control](#control-entity)
@@ -1017,7 +1017,7 @@ dataPoint.transform('entry:foo', input)
 
 Example at: [examples/entity-entry-error-resolved.js](examples/entity-entry-error-resolved.js)
 
-For examples of entry entities, see the ones used in the [Examples](examples), on the unit tests: [Source Definitions](test/definitions/entry.js) and [Integration Examples](test/definitions/integrations.js)
+For examples of entry entities, see the ones used in the [Examples](examples), on the unit tests: [Request Definitions](test/definitions/entry.js) and [Integration Examples](test/definitions/integrations.js)
 
 ##### <a name="entry-params">Entry.params</a>
 
@@ -1112,15 +1112,15 @@ dataPoint.transform('entry:foo', input).then((acc) => {
 
 Example at: [examples/entity-entry-error-handled.js](examples/entity-entry-error-handled.js)
 
-#### <a name="source-entity">Source Entity</a>
+#### <a name="request-entity">Request Entity</a>
 
-Requests a remote source, using [Request](https://github.com/request/request) behind the scenes. The features supported by Request are also exposed/supported by Source.
+Requests a remote source, using [request](https://github.com/request/request) behind the scenes. The features supported by `request` are exposed/supported by Request entity.
 
 **SYNOPSIS**
 
 ```js
 dataPoint.addEntities({
-  'source:<entityId>': {
+  'request:<entityId>': {
     before: TransformExpression,
     url: StringTemplate,
     options: TransformObject,
@@ -1144,7 +1144,7 @@ dataPoint.addEntities({
 | *error*   | [TransformExpression](#transform-expression) | Transform to be resolved in case of an error |
 | *params*    | `Object` | User defined Hash that will be passed to every transform within the context of the transform's execution |
 
-##### <a name="source-url">Source.url</a>
+##### <a name="request-url">Request.url</a>
 
 **GitHub API - list organization info**
 
@@ -1154,7 +1154,7 @@ Fetches an organization's information.
 
 ```js
 dataPoint.addEntities({
-  'source:getOrgInfo': {
+  'request:getOrgInfo': {
     url: 'https://api.github.com/orgs/nodejs',
     options: {
       headers: {
@@ -1164,17 +1164,17 @@ dataPoint.addEntities({
   }
 })
 
-dataPoint.transform('source:getOrgInfo', {}).then((acc) => {
+dataPoint.transform('request:getOrgInfo', {}).then((acc) => {
   // entire result from https://api.github.com/orgs/nodejs
   console.log(acc.value) 
 })
 ```
 
-Example at: [examples/entity-source-basic.js](examples/entity-source-basic.js)
+Example at: [examples/entity-request-basic.js](examples/entity-request-basic.js)
 
 ##### <a name="string-template">StringTemplate</a>
 
-StringTemplate is a string that supports a **minimal** templating system. You may inject any value into the string by enclosing it within `{ObjectPath}` curly braces. **The context of the string is the Source's [Accumulator](#accumulator) Object**, meaning you have access to any property within it. 
+StringTemplate is a string that supports a **minimal** templating system. You may inject any value into the string by enclosing it within `{ObjectPath}` curly braces. **The context of the string is the Request's [Accumulator](#accumulator) Object**, meaning you have access to any property within it. 
 
 Using `acc.value` property to make the url dynamic.
 
@@ -1183,7 +1183,7 @@ dataPoint.addEntities({
   // dynamic search, which uses StringTemplate's simple 
   // templating system {value} to inject the search 
   // value into the URL string
-  'source:getNodeOrgInfo': {
+  'request:getNodeOrgInfo': {
     url: 'https://api.github.com/orgs/{value.organization}',
     // this object will be passed to request.js
     options: {
@@ -1210,7 +1210,7 @@ dataPoint.addEntities({
   // dynamic search, which uses StringTemplate's simple 
   // templating system {value} to inject the search 
   // value into the URL string
-  'source:getNodeOrgInfo': {
+  'request:getNodeOrgInfo': {
     url: 'https://api.github.com/orgs/{locals.organization}',
     // this object will be passed to request.js
     options: {
@@ -1233,7 +1233,7 @@ transform('entry:getNodeOrgInfo', null, {
 })
 ```
 
-Example at: [examples/entity-source-string-template.js](examples/entity-source-string-template.js)
+Example at: [examples/entity-request-string-template.js](examples/entity-request-string-template.js)
 
 ##### <a name="transform-object">TransformObject</a>
 
@@ -1243,7 +1243,7 @@ When a TransformObject is to be resolved, all TransformExpressions are resolved
 
 ```js
 dataPoint.addEntities({
-  'source:searchPeople': {
+  'request:searchPeople': {
     url: 'https://swapi.co/api/people/?search=r2',
     options: {
       qs: {
@@ -1258,7 +1258,7 @@ dataPoint.addEntities({
 })
 
 // second parameter to transform is the initial acc value
-dataPoint.transform('source:searchPeople', {
+dataPoint.transform('request:searchPeople', {
   search: 'r2'
 }).then((acc) => {
   // R2-D2
@@ -1266,20 +1266,20 @@ dataPoint.transform('source:searchPeople', {
 })
 ```
 
-Example at: [examples/entity-source-transform-object.js](examples/entity-source-transform-object.js)
+Example at: [examples/entity-request-transform-object.js](examples/entity-request-transform-object.js)
 
-##### <a name="source-before-request">Source.beforeRequest</a>
+##### <a name="request-before-request">Request.beforeRequest</a>
 
-There are times where you may want to process the `source.options` object before passing it to send the request. 
+There are times where you may want to process the `request.options` object before passing it to send the request. 
 
-This example simply provides the header object through a reducer. One possible use case for source.beforeRequest would be to set up [OAuth Signing](https://www.npmjs.com/package/request#oauth-signing).
+This example simply provides the header object through a reducer. One possible use case for request.beforeRequest would be to set up [OAuth Signing](https://www.npmjs.com/package/request#oauth-signing).
 
 ```js
 dataPoint.addEntities({
-  'source:getOrgInfo': {
+  'request:getOrgInfo': {
     url: 'https://api.github.com/orgs/{value}',
     beforeRequest: (acc, next) => {
-      // acc.value holds reference to source.options
+      // acc.value holds reference to request.options
       const options = _.assign({}, acc.value, {
         headers: {
           'User-Agent': 'DataPoint'
@@ -1291,15 +1291,15 @@ dataPoint.addEntities({
   }
 })
 
-dataPoint.transform('source:getOrgInfo', 'nodejs').then((acc) => {
+dataPoint.transform('request:getOrgInfo', 'nodejs').then((acc) => {
   console.log(acc.value)
   // entire result from https://api.github.com/orgs/nodejs
 })
 ```
 
-Example at: [examples/entity-source-before-request.js](examples/entity-source-before-request.js)
+Example at: [examples/entity-request-before-request.js](examples/entity-request-before-request.js)
 
-For more examples of source entities, see the [Examples](examples), the unit tests: [Source Definitions](test/definitions/sources.js), and [Integration Examples](test/definitions/integrations.js)
+For more examples of request entities, see the [Examples](examples), the unit tests: [Request Definitions](test/definitions/sources.js), and [Integration Examples](test/definitions/integrations.js)
 
 #### <a name="hash-entity">Hash Entity</a>
 
@@ -1394,11 +1394,11 @@ Example at: [examples/entity-hash-context.js](examples/entity-hash-context.js)
 
 Maps to a new set of key/value pairs through a [TransformMap](#transform-map), where each value accepts a [TransformExpression](#transform-expression).
 
-Going back to our GitHub API examples, let's map some keys from the result of a source:
+Going back to our GitHub API examples, let's map some keys from the result of a request:
 
 ```js
 dataPoint.addEntities({
-  'source:getOrgInfo': {
+  'request:getOrgInfo': {
     url: 'https://api.github.com/orgs/nodejs',
     options: { headers: { 'User-Agent': 'DataPoint' } }
   },
@@ -1413,7 +1413,7 @@ dataPoint.addEntities({
   }
 })
 
-dataPoint.transform('source:getOrgInfo | hash:OrgInfo').then((acc) => {
+dataPoint.transform('request:getOrgInfo | hash:OrgInfo').then((acc) => {
   console.log(acc.value)
   // {
   //  reposUrl: 'https://api.github.com/orgs/nodejs/repos',
@@ -1450,9 +1450,9 @@ Hash.addKeys is very similar to Hash.mapKeys, but the difference is that `mapKey
 ```js
 dataPoint.addEntities({
   'entry:orgInfo': {
-    value: 'source:getOrgInfo | hash:OrgInfo | hash:OrgInfoCustom'
+    value: 'request:getOrgInfo | hash:OrgInfo | hash:OrgInfoCustom'
   },
-  'source:getOrgInfo': {
+  'request:getOrgInfo': {
     url: 'https://api.github.com/orgs/nodejs',
     options: { headers: { 'User-Agent': 'DataPoint' } }
   },
@@ -1511,9 +1511,9 @@ The next example is similar to the previous example. However, instead of mapping
 ```js
 dataPoint.addEntities({
   'entry:orgInfo': {
-    value: 'source:getOrgInfo | hash:OrgInfo'
+    value: 'request:getOrgInfo | hash:OrgInfo'
   },
-  'source:getOrgInfo': {
+  'request:getOrgInfo': {
     url: 'https://api.github.com/orgs/{value.org}',
     options: { headers: { 'User-Agent': 'DataPoint' } }
   },
@@ -1555,9 +1555,9 @@ This example will only **omit** some keys, and let the rest pass through:
 ```js
 dataPoint.addEntities({
   'entry:orgInfo': {
-    value: 'source:getOrgInfo | hash:OrgInfo'
+    value: 'request:getOrgInfo | hash:OrgInfo'
   },
-  'source:getOrgInfo': {
+  'request:getOrgInfo': {
     url: 'https://api.github.com/orgs/{value.org}',
     options: { headers: { 'User-Agent': 'DataPoint' } }
   },
@@ -1659,9 +1659,9 @@ const toUpperCase = (acc, next) => {
 
 dataPoint.addEntities({
   'entry:orgInfo': {
-    value: 'source:getOrgInfo | hash:OrgInfo'
+    value: 'request:getOrgInfo | hash:OrgInfo'
   },
-  'source:getOrgInfo': {
+  'request:getOrgInfo': {
     url: 'https://api.github.com/orgs/{value.org}',
     options: { headers: { 'User-Agent': 'DataPoint' } }
   },
@@ -1695,7 +1695,7 @@ dataPoint.transform('entry:orgInfo', { org: 'nodejs' }).then((acc) => {
 })
 ```
 
-For examples of hash entities, see the [Examples](examples), on the unit tests: [Source Definitions](test/definitions/hash.js), and [Integration Examples](test/definitions/integrations.js)
+For examples of hash entities, see the [Examples](examples), on the unit tests: [Request Definitions](test/definitions/hash.js), and [Integration Examples](test/definitions/integrations.js)
 
 #### <a name="collection-entity">Collection Entity</a>
 
@@ -1755,7 +1755,7 @@ Now that we have the result of the fetch, let's now map each item, and then extr
 
 ```js
 dataPoint.addEntities({
-  'source:getOrgRepositories': {
+  'request:getOrgRepositories': {
     url: 'https://api.github.com/orgs/nodejs/repos'
   },
   'collection:getRepositoryTagsUrl': {
@@ -1763,7 +1763,7 @@ dataPoint.addEntities({
   }
 })
 
-dataPoint.transform('source:getGist | collection:getRepositoryTagsUrl', {}).then((acc) => {
+dataPoint.transform('request:getGist | collection:getRepositoryTagsUrl', {}).then((acc) => {
   console.log(acc.value)
   /*
   [
@@ -1787,22 +1787,22 @@ _For the purpose of this example, let's imagine that GitHub does not provide the
 
 ```js
 dataPoint.addEntities({
-  'source:getOrgRepositories': {
+  'request:getOrgRepositories': {
     url: 'https://api.github.com/orgs/nodejs/repos'
   },
-  'source:getLatestTag': {
+  'request:getLatestTag': {
     // here we are injecting the current acc.value 
-    // that was passed to the source
+    // that was passed to the request
     url: 'https://api.github.com/repos/nodejs/{value}/tags'
   },
   'collection:getRepositoryLatestTag': {
     // magic!! here we are telling it to map each 
-    // repository.name to a source:getLatestTag, and return the entire source
-    map: '$name | source:getLatestTag'
+    // repository.name to a request:getLatestTag, and return the entire source
+    map: '$name | request:getLatestTag'
   }
 })
 
-dataPoint.transform('source:getOrgRepositories | collection:getRepositoryLatestTag', {}).then((acc) => {
+dataPoint.transform('request:getOrgRepositories | collection:getRepositoryLatestTag', {}).then((acc) => {
   console.log(acc.value)
   /*
   [
@@ -1836,12 +1836,12 @@ To obtain the latest tag GitHub has on each repository:
 
 ```js
 dataPoint.addEntities({
-  'source:getOrgRepositories': {
+  'request:getOrgRepositories': {
     url: 'https://api.github.com/orgs/nodejs/repos'
   },
-  'source:getLatestTag': {
+  'request:getLatestTag': {
     // here we are injecting the current acc.value 
-    // that was passed to the source
+    // that was passed to the request
     url: 'https://api.github.com/repos/nodejs/{value}/tags',
     options
   },
@@ -1850,11 +1850,11 @@ dataPoint.addEntities({
     // we add a third reducer at the end to get 
     // the first element of each tag result,
     // and the name of it
-    map: '$name | source:getLatestTag | $[0].name'
+    map: '$name | request:getLatestTag | $[0].name'
   }
 })
 
-dataPoint.transform('source:getOrgRepositories | collection:getRepositoryLatestTag', {}).then((acc) => {
+dataPoint.transform('request:getOrgRepositories | collection:getRepositoryLatestTag', {}).then((acc) => {
   console.log(acc.value)
   /*
   [
@@ -1878,7 +1878,7 @@ The following example filters the data to identify all the repos that have more
 
 ```js
 dataPoint.addEntities({
-  'source:getOrgRepositories': {
+  'request:getOrgRepositories': {
     url: 'https://api.github.com/orgs/nodejs/repos'
   },
   'collection:getRepositoryUrl': {
@@ -1888,7 +1888,7 @@ dataPoint.addEntities({
   }
 })
 
-dataPoint.transform('source:getGist', {}).then((acc) => {
+dataPoint.transform('request:getGist', {}).then((acc) => {
   console.log(acc.value)
   /*
   [
@@ -1910,7 +1910,7 @@ The following example gets all the repos that are actually forks. In this case,
 
 ```js
 dataPoint.addEntities({
-  'source:getOrgRepositories': {
+  'request:getOrgRepositories': {
     url: 'https://api.github.com/orgs/nodejs/repos'
   },
   'collection:getRepositoryUrl': {
@@ -1918,7 +1918,7 @@ dataPoint.addEntities({
   }
 })
 
-dataPoint.transform('source:getGist', {}).then((acc) => {
+dataPoint.transform('request:getGist', {}).then((acc) => {
   console.log(acc.value)
   /*
   [
@@ -1949,7 +1949,7 @@ Returns the value of the first element in the array that satisfies the provided
 
 ```js
 dataPoint.addEntities({
-  'source:repos': {
+  'request:repos': {
     url: 'https://api.github.com/orgs/nodejs/repos',
     options: {
       headers: {
@@ -1958,7 +1958,7 @@ dataPoint.addEntities({
     }
   },
   'collection:getNodeRepo': {
-    before: 'source:repos',
+    before: 'request:repos',
     find: (acc, next) => {
       // notice we are checking against the property -name- 
       next(null, acc.value.name === 'node')
@@ -1966,7 +1966,7 @@ dataPoint.addEntities({
   }
 })
 
-dataPoint.transform('source:repos | collection:getNodeRepo', {}).then((acc) => {
+dataPoint.transform('request:repos | collection:getNodeRepo', {}).then((acc) => {
   console.log(acc.value)
   /*
   {
@@ -1998,7 +1998,7 @@ const isEqualTo = (match) => (acc, next) => {
 }
 
 dataPoint.addEntities({
-  'source:repos': {
+  'request:repos': {
     url: 'https://api.github.com/orgs/nodejs/repos',
     options: {
       headers: {
@@ -2007,7 +2007,7 @@ dataPoint.addEntities({
     }
   },
   'collection:getNodeRepo': {
-    before: 'source:repos',
+    before: 'request:repos',
     compose: [{
       // passing the value of property -name- to the
       // next reducer, which will compare to a given value 
@@ -2016,7 +2016,7 @@ dataPoint.addEntities({
   }
 };
 
-dataPoint.transform('source:repos | collection:getNodeRepo', {}).then((acc) => {
+dataPoint.transform('request:repos | collection:getNodeRepo', {}).then((acc) => {
   console.log(acc.value)
   /*
   {
@@ -2041,7 +2041,7 @@ const isEqualTo = (match) => (acc, next) => {
 }
 
 dataPoint.addEntities({
-  'source:repos': {
+  'request:repos': {
     url: 'https://api.github.com/orgs/nodejs/repos',
     options: {
       headers: {
@@ -2060,7 +2060,7 @@ dataPoint.addEntities({
   }
 };
 
-dataPoint.transform('source:repos | collection:forkedReposSummary', {}).then((acc) => {
+dataPoint.transform('request:repos | collection:forkedReposSummary', {}).then((acc) => {
   console.log(acc.value)
   /*
   [
@@ -2081,7 +2081,7 @@ dataPoint.transform('source:repos | collection:forkedReposSummary', {}).then((ac
 })
 ```
 
-For more examples of collection entities, see the [Examples](examples), on the unit tests: [Source Definitions](test/definitions/collection.js), and [Integration Examples](test/definitions/integrations.js)
+For more examples of collection entities, see the [Examples](examples), on the unit tests: [Request Definitions](test/definitions/collection.js), and [Integration Examples](test/definitions/integrations.js)
 
 #### <a name="control-entity">Control Entity</a>
 
@@ -2254,13 +2254,13 @@ To reuse the options from an extension:
 ```js
 dataPoint.addEntities({
   'entry:getReposWithAllTags': {
-    value: 'source:repositories'
+    value: 'request:repositories'
   },
-  'source:githubBase': {
+  'request:githubBase': {
     options: { headers: { 'User-Agent': 'DataPoint' } }
   },
-  'source:repositories -> source:githubBase': {
-    // options object is provided by source:githubBase
+  'request:repositories -> request:githubBase': {
+    // options object is provided by request:githubBase
     url: 'https://api.github.com/orgs/{locals.orgName}/repos'
   }
 })
@@ -2331,7 +2331,7 @@ dataPoint.use(id, callback)
 
 | Argument | Type | Description |
 |:---|:---|:---|
-| *id* | `string` | middleware ID is a two part string in the form of `<EntityType>:<EventType>`, where `<EntityType>` may be `entry`, `model`, `source`, or any other registered entity type. `<EventType>` is either `before` or `after`. |
+| *id* | `string` | middleware ID is a two part string in the form of `<EntityType>:<EventType>`, where `<EntityType>` may be `entry`, `model`, `request`, or any other registered entity type. `<EventType>` is either `before` or `after`. |
 | *callback* | `Function` | This is the callback function that will be executed once an entity event is triggered. The callback has the form `(acc, next)`, where `acc` is the current middleware [Middleware Accumulator](#middleware-accumulator-object) object, and next is a function callback to be executed once the middleware is done executing. `next` callback uses the form of `(error)`. |
 
 ### <a name="middleware-accumulator-object">Middleware Accumulator object</a>
diff --git a/examples/async-example.js b/examples/async-example.js
index 6c62f5d..b9cd707 100644
--- a/examples/async-example.js
+++ b/examples/async-example.js
@@ -1,12 +1,12 @@
 const dataPoint = require('../').create()
 
 dataPoint.addEntities({
-  'source:Planet': {
+  'request:Planet': {
     url: 'https://swapi.co/api/planets/{value.planetId}'
   },
 
   'hash:Planet': {
-    value: 'source:Planet',
+    value: 'request:Planet',
     mapKeys: {
       name: '$name',
       population: '$population',
@@ -14,12 +14,12 @@ dataPoint.addEntities({
     }
   },
 
-  'source:Resident': {
+  'request:Resident': {
     url: '{value}'
   },
 
   'hash:Resident': {
-    value: 'source:Resident',
+    value: 'request:Resident',
     mapKeys: {
       name: '$name',
       gender: '$gender',
diff --git a/examples/entity-hash-addKeys.js b/examples/entity-hash-addKeys.js
index a5efc30..abcb9fd 100644
--- a/examples/entity-hash-addKeys.js
+++ b/examples/entity-hash-addKeys.js
@@ -3,9 +3,9 @@ const assert = require('assert')
 
 dataPoint.addEntities({
   'entry:orgInfo': {
-    value: 'source:getOrgInfo | hash:OrgInfo | hash:OrgInfoCustom'
+    value: 'request:getOrgInfo | hash:OrgInfo | hash:OrgInfoCustom'
   },
-  'source:getOrgInfo': {
+  'request:getOrgInfo': {
     url: 'https://api.github.com/orgs/nodejs',
     options: { headers: { 'User-Agent': 'DataPoint' } }
   },
diff --git a/examples/entity-hash-mapKeys.js b/examples/entity-hash-mapKeys.js
index 0f48f4a..ea7cf90 100644
--- a/examples/entity-hash-mapKeys.js
+++ b/examples/entity-hash-mapKeys.js
@@ -1,7 +1,7 @@
 const dataPoint = require('../').create()
 
 dataPoint.addEntities({
-  'source:getOrgInfo': {
+  'request:getOrgInfo': {
     url: 'https://api.github.com/orgs/nodejs',
     options: { headers: { 'User-Agent': 'DataPoint' } }
   },
@@ -16,7 +16,7 @@ dataPoint.addEntities({
   }
 })
 
-dataPoint.transform('source:getOrgInfo | hash:OrgInfo').then(acc => {
+dataPoint.transform('request:getOrgInfo | hash:OrgInfo').then(acc => {
   console.log(acc.value)
   // {
   //  reposUrl: 'https://api.github.com/orgs/nodejs/repos',
diff --git a/examples/entity-hash-omitKeys.js b/examples/entity-hash-omitKeys.js
index 7ddfbf4..57cb77b 100644
--- a/examples/entity-hash-omitKeys.js
+++ b/examples/entity-hash-omitKeys.js
@@ -3,9 +3,9 @@ const assert = require('assert')
 
 dataPoint.addEntities({
   'entry:orgInfo': {
-    value: 'source:getOrgInfo | hash:OrgInfo'
+    value: 'request:getOrgInfo | hash:OrgInfo'
   },
-  'source:getOrgInfo': {
+  'request:getOrgInfo': {
     url: 'https://api.github.com/orgs/{value.org}',
     options: { headers: { 'User-Agent': 'DataPoint' } }
   },
diff --git a/examples/entity-hash-pickKeys.js b/examples/entity-hash-pickKeys.js
index c12f6b9..5b5246f 100644
--- a/examples/entity-hash-pickKeys.js
+++ b/examples/entity-hash-pickKeys.js
@@ -3,9 +3,9 @@ const assert = require('assert')
 
 dataPoint.addEntities({
   'entry:orgInfo': {
-    value: 'source:getOrgInfo | hash:OrgInfo'
+    value: 'request:getOrgInfo | hash:OrgInfo'
   },
-  'source:getOrgInfo': {
+  'request:getOrgInfo': {
     url: 'https://api.github.com/orgs/{value.org}',
     options: { headers: { 'User-Agent': 'DataPoint' } }
   },
diff --git a/examples/entity-source-basic.js b/examples/entity-request-basic.js
similarity index 76%
rename from examples/entity-source-basic.js
rename to examples/entity-request-basic.js
index 49b24dc..55c0c87 100644
--- a/examples/entity-source-basic.js
+++ b/examples/entity-request-basic.js
@@ -1,7 +1,7 @@
 const dataPoint = require('../').create()
 
 dataPoint.addEntities({
-  'source:getOrgInfo': {
+  'request:getOrgInfo': {
     url: 'https://api.github.com/orgs/nodejs',
     options: {
       headers: {
@@ -11,6 +11,6 @@ dataPoint.addEntities({
   }
 })
 
-dataPoint.transform('source:getOrgInfo', {}).then(acc => {
+dataPoint.transform('request:getOrgInfo', {}).then(acc => {
   console.log(acc.value) // entire result from https://api.github.com/orgs/nodejs
 })
diff --git a/examples/entity-source-before-request.js b/examples/entity-request-before-request.js
similarity index 74%
rename from examples/entity-source-before-request.js
rename to examples/entity-request-before-request.js
index b3ea165..5217703 100644
--- a/examples/entity-source-before-request.js
+++ b/examples/entity-request-before-request.js
@@ -2,10 +2,10 @@ const dataPoint = require('../').create()
 const _ = require('lodash')
 
 dataPoint.addEntities({
-  'source:getOrgInfo': {
+  'request:getOrgInfo': {
     url: 'https://api.github.com/orgs/{value}',
     beforeRequest: (acc, next) => {
-      // acc.value holds reference to source.options
+      // acc.value holds reference to request.options
       const options = _.assign({}, acc.value, {
         headers: {
           'User-Agent': 'DataPoint'
@@ -17,7 +17,7 @@ dataPoint.addEntities({
   }
 })
 
-dataPoint.transform('source:getOrgInfo', 'nodejs').then(acc => {
+dataPoint.transform('request:getOrgInfo', 'nodejs').then(acc => {
   console.log(acc.value)
   // entire result from https://api.github.com/orgs/nodejs
 })
diff --git a/examples/entity-source-string-template.js b/examples/entity-request-string-template.js
similarity index 76%
rename from examples/entity-source-string-template.js
rename to examples/entity-request-string-template.js
index bccf40b..b461d8b 100644
--- a/examples/entity-source-string-template.js
+++ b/examples/entity-request-string-template.js
@@ -1,7 +1,7 @@
 const dataPoint = require('../').create()
 
 dataPoint.addEntities({
-  'source:getOrgInfo': {
+  'request:getOrgInfo': {
     url: 'https://api.github.com/orgs/{value}',
     options: {
       headers: {
@@ -10,7 +10,7 @@ dataPoint.addEntities({
     }
   },
 
-  'source:getOrgInfoFromObject': {
+  'request:getOrgInfoFromObject': {
     // notice here dot notation to get the value of name
     url: 'https://api.github.com/orgs/{value.org.name}',
     options: {
@@ -20,7 +20,7 @@ dataPoint.addEntities({
     }
   },
 
-  'source:getOrgInfoFromLocals': {
+  'request:getOrgInfoFromLocals': {
     // notice here dot notation to get the value of name from locals
     url: 'https://api.github.com/orgs/{locals.name}',
     options: {
@@ -31,14 +31,14 @@ dataPoint.addEntities({
   }
 })
 
-dataPoint.transform('source:getOrgInfo', 'nodejs').then(acc => {
+dataPoint.transform('request:getOrgInfo', 'nodejs').then(acc => {
   console.log(acc.value)
   // entire result from https://api.github.com/orgs/nodejs
 })
 
 // here we pass an Object as the input value
 dataPoint
-  .transform('source:getOrgInfoFromObject', { org: { name: 'nodejs' } })
+  .transform('request:getOrgInfoFromObject', { org: { name: 'nodejs' } })
   .then(acc => {
     console.log(acc.value)
     // entire result from https://api.github.com/orgs/nodejs
@@ -49,7 +49,7 @@ const options = {
 }
 
 // here we pass options (thrid argument to transform)
-dataPoint.transform('source:getOrgInfoFromLocals', true, options).then(acc => {
+dataPoint.transform('request:getOrgInfoFromLocals', true, options).then(acc => {
   console.log(acc.value)
   // entire result from https://api.github.com/orgs/nodejs
 })
diff --git a/examples/entity-source-transform-object.js b/examples/entity-request-transform-object.js
similarity index 88%
rename from examples/entity-source-transform-object.js
rename to examples/entity-request-transform-object.js
index ff4f738..60e587d 100644
--- a/examples/entity-source-transform-object.js
+++ b/examples/entity-request-transform-object.js
@@ -1,7 +1,7 @@
 const dataPoint = require('../').create()
 
 dataPoint.addEntities({
-  'source:searchPeople': {
+  'request:searchPeople': {
     url: 'https://swapi.co/api/people/?search=r2',
     options: {
       qs: {
@@ -17,7 +17,7 @@ dataPoint.addEntities({
 
 // second parameter to transform is the initial acc value
 dataPoint
-  .transform('source:searchPeople', {
+  .transform('request:searchPeople', {
     search: 'r2'
   })
   .then(acc => {
diff --git a/examples/extend-entity-keys.js b/examples/extend-entity-keys.js
index d3b2e84..ea58495 100644
--- a/examples/extend-entity-keys.js
+++ b/examples/extend-entity-keys.js
@@ -2,13 +2,13 @@ const dataPoint = require('../').create()
 
 dataPoint.addEntities({
   'entry:getReposWithAllTags': {
-    value: 'source:repositories'
+    value: 'request:repositories'
   },
-  'source:githubBase': {
+  'request:githubBase': {
     options: { headers: { 'User-Agent': 'DataPoint' } }
   },
-  'source:repositories -> source:githubBase': {
-    // options object is provided by source:githubBase
+  'request:repositories -> request:githubBase': {
+    // options object is provided by request:githubBase
     url: 'https://api.github.com/orgs/{locals.orgName}/repos'
   }
 })
diff --git a/lib/accumulator/factory.js b/lib/accumulator/factory.js
index 5b20d2a..c24a0c2 100644
--- a/lib/accumulator/factory.js
+++ b/lib/accumulator/factory.js
@@ -19,7 +19,7 @@ module.exports.Accumulator = Accumulator
 
 /**
  * creates new Accumulator based on spec
- * @param  {Object} spec - source spec
+ * @param  {Object} spec - acumulator spec
  * @return {Source}
  */
 function create (spec) {
diff --git a/lib/core/factory.js b/lib/core/factory.js
index 636a3ec..57ff8a0 100644
--- a/lib/core/factory.js
+++ b/lib/core/factory.js
@@ -15,7 +15,7 @@ const EntityTransform = require('../entity-types/entity-transform')
 const EntityEntry = require('../entity-types/entity-entry')
 const EntityHash = require('../entity-types/entity-hash')
 const EntityCollection = require('../entity-types/entity-collection')
-const EntitySource = require('../entity-types/entity-source')
+const EntityRequest = require('../entity-types/entity-request')
 const EntityControl = require('../entity-types/entity-control')
 const EntitySchema = require('../entity-types/entity-schema')
 
@@ -76,7 +76,9 @@ function create (spec) {
   manager.addEntityTypes('model', EntityEntry)
   manager.addEntityTypes('hash', EntityHash)
   manager.addEntityTypes('collection', EntityCollection)
-  manager.addEntityTypes('source', EntitySource)
+  manager.addEntityTypes('request', EntityRequest)
+  // for backwards compatibility
+  manager.addEntityTypes('source', EntityRequest)
   manager.addEntityTypes('control', EntityControl)
   manager.addEntityTypes('schema', EntitySchema)
 
diff --git a/lib/entity-types/entity-source/factory.js b/lib/entity-types/entity-request/factory.js
similarity index 85%
rename from lib/entity-types/entity-source/factory.js
rename to lib/entity-types/entity-request/factory.js
index 0fea246..78fc861 100644
--- a/lib/entity-types/entity-source/factory.js
+++ b/lib/entity-types/entity-request/factory.js
@@ -9,13 +9,13 @@ const TransformKeys = require('./transform-keys')
 /**
  * @class
  */
-function Source () {
+function Request () {
   this.url = undefined
   this.options = {}
   this.beforeRequest = undefined
 }
 
-module.exports.Source = Source
+module.exports.Request = Request
 
 function getTransformKeys (options) {
   const transformKeys = TransformKeys.getTransformKeys(options)
@@ -35,12 +35,12 @@ function unsetTransformKeys (options, transformOptionKeys) {
 module.exports.unsetTransformKeys = unsetTransformKeys
 
 /**
- * creates new Source based on spec
- * @param  {Object} spec - source spec
- * @return {Source}
+ * creates new Request based on spec
+ * @param  {Object} spec - request spec
+ * @return {Request}
  */
 function create (spec) {
-  const entity = helpers.createEntity(Source, spec)
+  const entity = helpers.createEntity(Request, spec)
   const options = _.defaultTo(spec.options, {})
   entity.url = _.defaultTo(spec.url, '')
   entity.beforeRequest = createTransform(spec.beforeRequest)
diff --git a/lib/utils/index.js b/lib/utils/index.js
index e5a623d..dff32e3 100644
--- a/lib/utils/index.js
+++ b/lib/utils/index.js
@@ -27,7 +27,7 @@ function getUID () {
 module.exports.getUID = getUID
 
 /**
- * source: https://stackoverflow.com/a/28475765
+ * request: https://stackoverflow.com/a/28475765
  * This method has not been tested for performance
  * and could be flawed its only purpose is for error messages
  * @param {*} value


Test patch:
diff --git a/lib/core/core.test.js b/lib/core/core.test.js
index 12d79f9..f3295e0 100644
--- a/lib/core/core.test.js
+++ b/lib/core/core.test.js
@@ -31,7 +31,7 @@ test('setup', () => {
 
   expect(instance.values.store.v1).toEqual('v1')
   expect(_.isFunction(instance.filters.store.test.passThrough)).toBeTruthy()
-  expect(instance.entities.store.has('source:a0.1')).toBeTruthy()
+  expect(instance.entities.store.has('request:a0.1')).toBeTruthy()
   expect(instance.entities.store.has('entry:a0')).toBeTruthy()
 })
 
diff --git a/lib/entity-types/entity-request/factory.test.js b/lib/entity-types/entity-request/factory.test.js
new file mode 100644
index 0000000..e988664
--- /dev/null
+++ b/lib/entity-types/entity-request/factory.test.js
@@ -0,0 +1,47 @@
+/* eslint-env jest */
+'use strict'
+
+const requests = require('../../../test/definitions/requests')
+
+const requestFactory = require('./factory')
+const helpers = require('../../helpers')
+
+describe('create', () => {
+  let request
+  beforeAll(() => {
+    const requestSpec = requests['request:a0.1']
+    request = requestFactory.create(requestSpec)
+  })
+  test('It should have defaults', () => {
+    expect(request).toHaveProperty('id')
+    expect(request).toHaveProperty('before')
+    expect(request).toHaveProperty('after')
+    expect(request).toHaveProperty('error')
+    expect(request).toHaveProperty('params')
+  })
+  test('It should have url', () => {
+    expect(request).toHaveProperty('url')
+  })
+  test('It should have options with out any transform keys', () => {
+    expect(request).toHaveProperty('options')
+    expect(request.options).toEqual({
+      dataType: 'json',
+      method: 'POST',
+      qs: {
+        varKey2: 1,
+        varKey3: true
+      },
+      timeout: 1000,
+      username: '$username$'
+    })
+  })
+  test('It should have transformOptionKeys', () => {
+    expect(request).toHaveProperty('transformOptionKeys')
+    expect(request.transformOptionKeys).toHaveLength(2)
+    request.transformOptionKeys.forEach(element => {
+      expect(element).toHaveProperty('path')
+      expect(element).toHaveProperty('transform')
+      expect(helpers.isTransform(element.transform)).toBe(true)
+    }, this)
+  })
+})
diff --git a/lib/entity-types/entity-source/index.js b/lib/entity-types/entity-request/index.js
similarity index 100%
rename from lib/entity-types/entity-source/index.js
rename to lib/entity-types/entity-request/index.js
diff --git a/lib/entity-types/entity-source/reducer.js b/lib/entity-types/entity-request/reducer.js
similarity index 100%
rename from lib/entity-types/entity-source/reducer.js
rename to lib/entity-types/entity-request/reducer.js
diff --git a/lib/entity-types/entity-source/reducer.test.js b/lib/entity-types/entity-request/reducer.test.js
similarity index 93%
rename from lib/entity-types/entity-source/reducer.test.js
rename to lib/entity-types/entity-request/reducer.test.js
index 8eb16fd..fdc1871 100644
--- a/lib/entity-types/entity-source/reducer.test.js
+++ b/lib/entity-types/entity-request/reducer.test.js
@@ -32,7 +32,7 @@ function transform (entityId, value, options) {
 let locals
 let values
 
-function helperMockContext (accumulatorData, reducerSource, sourceName) {
+function helperMockContext (accumulatorData, reducerSource, requestName) {
   const accumulator = AccumulatorFactory.create({
     value: accumulatorData,
     locals,
@@ -63,8 +63,8 @@ describe('resolveUrlInjections', () => {
 
     const currentAccumulator = helperMockContext(
       value,
-      'source:a1',
-      'source:a1'
+      'request:a1',
+      'request:a1'
     )
 
     const result = Reducer.resolveUrlInjections(
@@ -204,7 +204,7 @@ describe('resolve', () => {
         ok: true
       })
 
-    return transform('source:a1', null).then(result => {
+    return transform('request:a1', null).then(result => {
       expect(result.value).toEqual({
         ok: true
       })
@@ -218,7 +218,7 @@ describe('resolve', () => {
         ok: true
       })
 
-    return transform('source:a1.0', {}).then(result => {
+    return transform('request:a1.0', {}).then(result => {
       expect(result.value).toEqual({
         ok: true
       })
@@ -232,7 +232,7 @@ describe('resolve', () => {
         ok: true
       })
 
-    return transform('source:a2', {}).then(result => {
+    return transform('request:a2', {}).then(result => {
       expect(result.value).toEqual({
         ok: true
       })
@@ -247,7 +247,7 @@ describe('resolve', () => {
       })
 
     return transform(
-      'source:a3',
+      'request:a3',
       {},
       {
         initialValue: {
@@ -269,7 +269,7 @@ describe('resolve', () => {
       })
 
     return transform(
-      'source:a3.2',
+      'request:a3.2',
       {},
       {
         locals: {
@@ -290,7 +290,7 @@ describe('resolve', () => {
         ok: true
       })
 
-    return transform('source:a4', {}).then(result => {
+    return transform('request:a4', {}).then(result => {
       expect(result.value).toEqual({
         ok: true
       })
diff --git a/lib/entity-types/entity-source/transform-keys.js b/lib/entity-types/entity-request/transform-keys.js
similarity index 100%
rename from lib/entity-types/entity-source/transform-keys.js
rename to lib/entity-types/entity-request/transform-keys.js
diff --git a/lib/entity-types/entity-source/transform-keys.test.js b/lib/entity-types/entity-request/transform-keys.test.js
similarity index 100%
rename from lib/entity-types/entity-source/transform-keys.test.js
rename to lib/entity-types/entity-request/transform-keys.test.js
diff --git a/lib/entity-types/entity-source/factory.test.js b/lib/entity-types/entity-source/factory.test.js
deleted file mode 100644
index bcaee45..0000000
--- a/lib/entity-types/entity-source/factory.test.js
+++ /dev/null
@@ -1,47 +0,0 @@
-/* eslint-env jest */
-'use strict'
-
-const sources = require('../../../test/definitions/sources')
-
-const sourceFactory = require('./factory')
-const helpers = require('../../helpers')
-
-describe('create', () => {
-  let source
-  beforeAll(() => {
-    const sourceSpec = sources['source:a0.1']
-    source = sourceFactory.create(sourceSpec)
-  })
-  test('It should have defaults', () => {
-    expect(source).toHaveProperty('id')
-    expect(source).toHaveProperty('before')
-    expect(source).toHaveProperty('after')
-    expect(source).toHaveProperty('error')
-    expect(source).toHaveProperty('params')
-  })
-  test('It should have url', () => {
-    expect(source).toHaveProperty('url')
-  })
-  test('It should have options with out any transform keys', () => {
-    expect(source).toHaveProperty('options')
-    expect(source.options).toEqual({
-      dataType: 'json',
-      method: 'POST',
-      qs: {
-        varKey2: 1,
-        varKey3: true
-      },
-      timeout: 1000,
-      username: '$username$'
-    })
-  })
-  test('It should have transformOptionKeys', () => {
-    expect(source).toHaveProperty('transformOptionKeys')
-    expect(source.transformOptionKeys).toHaveLength(2)
-    source.transformOptionKeys.forEach(element => {
-      expect(element).toHaveProperty('path')
-      expect(element).toHaveProperty('transform')
-      expect(helpers.isTransform(element.transform)).toBe(true)
-    }, this)
-  })
-})
diff --git a/lib/entity-types/integrations.test.js b/lib/entity-types/integrations.test.js
index 8629e6e..adb1fe5 100644
--- a/lib/entity-types/integrations.test.js
+++ b/lib/entity-types/integrations.test.js
@@ -45,7 +45,7 @@ test('Entry#resolve - branch/leaf nesting', () => {
     })
 })
 
-test('Entry#resolve - resolve source', () => {
+test('Entry#resolve - resolve request', () => {
   const expected = {
     ok: true
   }
@@ -54,12 +54,12 @@ test('Entry#resolve - resolve source', () => {
     .get('/source1')
     .reply(200, expected)
 
-  return dataPoint.transform('entry:callSource', {}).then(result => {
+  return dataPoint.transform('entry:callRequest', {}).then(result => {
     expect(result.value).toEqual(expected)
   })
 })
 
-test('Entry#resolve - source uses locals object', () => {
+test('Entry#resolve - request uses locals object', () => {
   const expected = {
     ok: true
   }
@@ -70,7 +70,7 @@ test('Entry#resolve - source uses locals object', () => {
 
   return dataPoint
     .transform(
-      'entry:callDynamicSourceFromLocals',
+      'entry:callDynamicRequestFromLocals',
       {},
     {
       locals: {
@@ -83,7 +83,7 @@ test('Entry#resolve - source uses locals object', () => {
     })
 })
 
-test('Entry#resolve - resolve hash with source', () => {
+test('Entry#resolve - resolve hash with request', () => {
   const expected = {
     ok: true
   }
@@ -92,12 +92,12 @@ test('Entry#resolve - resolve hash with source', () => {
     .get('/source1')
     .reply(200, expected)
 
-  return dataPoint.transform('entry:hashThatCallsSource').then(result => {
+  return dataPoint.transform('entry:hashThatCallsRequest').then(result => {
     expect(result.value).toEqual(expected)
   })
 })
 
-test('Entry#resolve - resolve hash with source and hash reducers', () => {
+test('Entry#resolve - resolve hash with request and hash reducers', () => {
   const expected = {
     newOk: 'trueok',
     ok: true
@@ -110,7 +110,7 @@ test('Entry#resolve - resolve hash with source and hash reducers', () => {
     })
 
   return dataPoint
-    .transform('entry:callHashWithSourceAndExtendResult')
+    .transform('entry:callHashWithRequestAndExtendResult')
     .then(result => {
       expect(result.value).toEqual(expected)
     })
@@ -135,7 +135,7 @@ test('Entry#resolve - resolve model with multiple sources', () => {
     })
 
   return dataPoint
-    .transform('entry:callHashThatCallsMultipleSources')
+    .transform('entry:callHashThatCallsMultipleRequests')
     .then(result => {
       expect(result.value).toEqual(expected)
     })
@@ -177,7 +177,7 @@ test('Entry#resolve - resolve model with dynamic sources collection', () => {
     })
 
   return dataPoint
-    .transform('entry:nestedSources')
+    .transform('entry:nestedRequests')
     .then(result => expect(result.value).toEqual(expected))
 })
 
@@ -193,11 +193,11 @@ test('Entry#resolve:middleware(entry:after) - gets called', () => {
   dataPoint.middleware.clear()
 
   dataPoint.middleware.use('entry:after', (acc, next) => {
-    expect(acc.context.id).toBe('entry:callSource')
+    expect(acc.context.id).toBe('entry:callRequest')
     next(null)
   })
 
-  return dataPoint.transform('entry:callSource', {}).then(result => {
+  return dataPoint.transform('entry:callRequest', {}).then(result => {
     expect(result.value).toEqual(expected)
   })
 })
diff --git a/lib/entity-types/resolve-entity/resolve-entity.test.js b/lib/entity-types/resolve-entity/resolve-entity.test.js
index b35cc62..ef770bf 100644
--- a/lib/entity-types/resolve-entity/resolve-entity.test.js
+++ b/lib/entity-types/resolve-entity/resolve-entity.test.js
@@ -96,7 +96,7 @@ describe('ResolveEntity.createCurrentAccumulator', () => {
 
 describe('ResolveEntity.resolveMiddleware', () => {
   test('It should execute a middleware', () => {
-    dataPoint.middleware.use('source:before', (acc, next) => {
+    dataPoint.middleware.use('request:before', (acc, next) => {
       acc.value = 'bar'
       next(null)
     })
@@ -104,7 +104,7 @@ describe('ResolveEntity.resolveMiddleware', () => {
     const racc = helpers.createAccumulator('foo')
     return ResolveEntity.resolveMiddleware(
       dataPoint,
-      'source:before',
+      'request:before',
       racc
     ).then(acc => {
       expect(acc.value).toEqual('bar')
@@ -112,13 +112,13 @@ describe('ResolveEntity.resolveMiddleware', () => {
   })
 
   test('It should execute a middleware', () => {
-    dataPoint.middleware.use('source:before', (acc, next) => {
+    dataPoint.middleware.use('request:before', (acc, next) => {
       acc.resolve('bar')
       next(null)
     })
 
     const racc = helpers.createAccumulator('foo')
-    return ResolveEntity.resolveMiddleware(dataPoint, 'source:before', racc)
+    return ResolveEntity.resolveMiddleware(dataPoint, 'request:before', racc)
       .catch(reason => reason)
       .then(reason => {
         expect(reason).toBeInstanceOf(Error)
diff --git a/lib/resolve/reducer.test.js b/lib/resolve/reducer.test.js
index 116b608..3fd411d 100644
--- a/lib/resolve/reducer.test.js
+++ b/lib/resolve/reducer.test.js
@@ -145,8 +145,8 @@ describe('resolve#reducer.resolve - reducer model', () => {
   })
 })
 
-describe('resolve#reducer.resolve - reducer source', () => {
-  test('simplest source', () => {
+describe('resolve#reducer.resolve - reducer request', () => {
+  test('simplest request', () => {
     nock('http://remote.test')
       .get('/source1')
       .reply(200, {
@@ -157,7 +157,7 @@ describe('resolve#reducer.resolve - reducer source', () => {
       value: testData.foo
     })
 
-    const transform = TransformExpression.create('source:a1')
+    const transform = TransformExpression.create('request:a1')
     return resolveReducer.resolve(store, accumulator, transform).then(result =>
       expect(result.value).toEqual({
         ok: true
@@ -182,7 +182,7 @@ describe('resolve#reducer.resolve - reducer source', () => {
       value: testData
     })
 
-    const transform = TransformExpression.create('source:a1 | source:a3')
+    const transform = TransformExpression.create('request:a1 | request:a3')
 
     return resolveReducer.resolve(store, accumulator, transform).then(result =>
       expect(result.value).toEqual({
diff --git a/lib/stores/entities.test.js b/lib/stores/entities.test.js
index 20fd90a..6b2cd35 100644
--- a/lib/stores/entities.test.js
+++ b/lib/stores/entities.test.js
@@ -6,13 +6,13 @@ const storeEntities = require('./entities')
 const storeEntityTypes = require('./entity-types')
 const sourceDefinitions = require('../../test/definitions/entities')
 
-const EntitySource = require('../entity-types/entity-source')
+const EntityRequest = require('../entity-types/entity-request')
 
 let entities
 
 it('setup', () => {
   const entityTypes = storeEntityTypes.create()
-  entityTypes.add('source', EntitySource)
+  entityTypes.add('request', EntityRequest)
   entities = storeEntities.create(entityTypes)
 })
 
@@ -23,14 +23,14 @@ it('source#getStore', () => {
 })
 
 it('source#add/get', () => {
-  entities.add('source:a0.1', sourceDefinitions['source:a0.1'])
+  entities.add('request:a0.1', sourceDefinitions['request:a0.1'])
 
-  const foo = entities.get('source:a0.1')
+  const foo = entities.get('request:a0.1')
 
   expect.assertions(2)
   expect(foo.url).toBe('http://some.path')
 
-  const doNotAllowOverride = _.attempt(entities.add, 'source:a0.1', {})
+  const doNotAllowOverride = _.attempt(entities.add, 'request:a0.1', {})
   expect(_.isError(doNotAllowOverride)).toBeTruthy()
 })
 
@@ -41,8 +41,8 @@ it('source#get invalid id', () => {
 })
 
 it('source#get', () => {
-  entities.add('source:a1', sourceDefinitions['source:a1'])
-  const result = entities.get('source:a1')
+  entities.add('request:a1', sourceDefinitions['request:a1'])
+  const result = entities.get('request:a1')
   expect.assertions(1)
   expect(result.url).toBe('http://remote.test/source1')
 })
diff --git a/lib/stores/entity-types.test.js b/lib/stores/entity-types.test.js
index d4d0139..a937a92 100644
--- a/lib/stores/entity-types.test.js
+++ b/lib/stores/entity-types.test.js
@@ -50,7 +50,7 @@ it('source#get invalid id', () => {
 })
 
 it('source#get', () => {
-  entityTypes.add('source:a1', FooEntityType)
+  entityTypes.add('request:a1', FooEntityType)
   const result = entityTypes.get('foo')
   expect.assertions(1)
   expect(_.isFunction(result.create)).toBeTruthy()
diff --git a/test/definitions/entities.js b/test/definitions/entities.js
index fa1ea7b..1974607 100644
--- a/test/definitions/entities.js
+++ b/test/definitions/entities.js
@@ -7,7 +7,7 @@ module.exports = Object.assign(
   require('./entry'),
   require('./hash'),
   require('./collection'),
-  require('./sources'),
+  require('./requests'),
   require('./control'),
   require('./integrations')
 )
diff --git a/test/definitions/integrations.js b/test/definitions/integrations.js
index b98f371..29d9a05 100644
--- a/test/definitions/integrations.js
+++ b/test/definitions/integrations.js
@@ -12,67 +12,67 @@ module.exports = {
       leafs: '$children | hash:branchLeaf[]'
     }
   },
-  'entry:callSource': {
+  'entry:callRequest': {
     // entry:a1
-    value: 'source:hardcodedUrl1',
+    value: 'request:hardcodedUrl1',
     params: {
       ttl: '2d'
     }
   },
-  'source:hardcodedUrl1': {
+  'request:hardcodedUrl1': {
     url: 'http://remote.test/source1'
   },
-  'source:hardcodedUrl2': {
+  'request:hardcodedUrl2': {
     url: 'http://remote.test/source2'
   },
 
-  'entry:callDynamicSourceFromLocals': {
+  'entry:callDynamicRequestFromLocals': {
     // entry:a2
-    value: 'source:dynamicSourceFromLocals'
+    value: 'request:dynamicRequestFromLocals'
   },
-  'source:dynamicSourceFromLocals': {
+  'request:dynamicRequestFromLocals': {
     url: 'http://remote.test{locals.itemPath}'
   },
 
-  'entry:hashThatCallsSource': {
+  'entry:hashThatCallsRequest': {
     // entry:a3
-    value: 'hash:callHardCodedSource'
+    value: 'hash:callHardCodedRequest'
   },
-  'hash:callHardCodedSource': {
-    value: 'source:hardcodedUrl1'
+  'hash:callHardCodedRequest': {
+    value: 'request:hardcodedUrl1'
   },
 
-  'entry:callHashWithSourceAndExtendResult': {
+  'entry:callHashWithRequestAndExtendResult': {
     // entry:a4
-    value: 'hash:callSourceExtendResult'
+    value: 'hash:callRequestExtendResult'
   },
-  'hash:callSourceExtendResult': {
-    value: 'source:hardcodedUrl1',
+  'hash:callRequestExtendResult': {
+    value: 'request:hardcodedUrl1',
     addKeys: {
       newOk: ['$ok', reducers.addString('ok')]
     }
   },
 
-  'entry:callHashThatCallsMultipleSources': {
+  'entry:callHashThatCallsMultipleRequests': {
     // entry:a5
-    value: 'hash:callMultipleSources'
+    value: 'hash:callMultipleRequests'
   },
-  'hash:callMultipleSources': {
+  'hash:callMultipleRequests': {
     addKeys: {
-      s1: ['source:hardcodedUrl1', reducers.getKeyValue('source')],
-      s2: ['source:hardcodedUrl2', reducers.getKeyValue('source')]
+      s1: ['request:hardcodedUrl1', reducers.getKeyValue('source')],
+      s2: ['request:hardcodedUrl2', reducers.getKeyValue('source')]
     }
   },
 
-  'entry:nestedSources': {
-    value: 'collection:nestedSources'
+  'entry:nestedRequests': {
+    value: 'collection:nestedRequests'
   },
-  'collection:nestedSources': {
-    before: 'source:hardcodedUrl1',
+  'collection:nestedRequests': {
+    before: 'request:hardcodedUrl1',
     value: '$sources',
-    map: 'source:useContextPathData'
+    map: 'request:useContextPathData'
   },
-  'source:useContextPathData': {
+  'request:useContextPathData': {
     url: 'http://remote.test{initialValue.itemPath}'
   },
   'schema:checkHashSchemaInvalid': {
diff --git a/test/definitions/sources.js b/test/definitions/requests.js
similarity index 84%
rename from test/definitions/sources.js
rename to test/definitions/requests.js
index db7f4ef..5054233 100644
--- a/test/definitions/sources.js
+++ b/test/definitions/requests.js
@@ -1,7 +1,7 @@
 const reducers = require('../utils/reducers')
 
 module.exports = {
-  'source:a0.1': {
+  'request:a0.1': {
     url: 'http://some.path',
     options: {
       dataType: 'json',
@@ -16,22 +16,22 @@ module.exports = {
       }
     }
   },
-  'source:a1': {
+  'request:a1': {
     url: 'http://remote.test/source1'
   },
-  'source:a1.0': {
+  'request:a1.0': {
     url: '{values.server}/source1'
   },
-  'source:a1.1': {
+  'request:a1.1': {
     url: 'http://remote.test/source2'
   },
-  'source:a1.2': {
+  'request:a1.2': {
     url: 'http://remote.test/source3'
   },
-  'source:a1.3': {
+  'request:a1.3': {
     url: 'http://remote.test/source4'
   },
-  'source:a2': {
+  'request:a2': {
     url: 'http://remote.test',
     beforeRequest: (acc, done) => {
       const options = acc.value
@@ -39,7 +39,7 @@ module.exports = {
       done(null, options)
     }
   },
-  'source:a3': {
+  'request:a3': {
     url: 'http://remote.test',
     beforeRequest: (acc, done) => {
       const options = acc.value
@@ -47,19 +47,19 @@ module.exports = {
       done(null, options)
     }
   },
-  'source:a3.2': {
+  'request:a3.2': {
     url: 'http://remote.test{locals.itemPath}'
   },
-  'source:a3.3': {
+  'request:a3.3': {
     url: 'http://remote.test{initialValue.itemPath}'
   },
-  'source:a4': {
+  'request:a4': {
     url: 'source1',
     options: {
       baseUrl: 'http://remote.test'
     }
   },
-  'source:a5': {
+  'request:a5': {
     url: 'http://remote.test/a5',
     before: reducers.addQueryVar('varKey2', 'someValue2'),
     options: {
@@ -68,19 +68,19 @@ module.exports = {
       }
     }
   },
-  'source:a6': {
+  'request:a6': {
     url: 'http://remote.test/a6',
     after: reducers.addKeyValue('testKey', 'testValue')
   },
-  'source:a7.1': {
+  'request:a7.1': {
     url: 'http://remote.test/a7',
     error: reducers.sourceErrorDoNothing()
   },
-  'source:a7.2': {
+  'request:a7.2': {
     url: 'http://remote.test/a7',
     error: reducers.sourceErrorGraceful()
   },
-  'source:a8.1': {
+  'request:a8.1': {
     url: 'source1',
     options: {
       baseUrl: 'http://remote.test'
diff --git a/test/utils/mocks.js b/test/utils/mocks.js
index 71216a8..53e079a 100644
--- a/test/utils/mocks.js
+++ b/test/utils/mocks.js
@@ -1,7 +1,7 @@
 // const AccumulatorFactory = require('../../lib/accumulator/factory')
 // const reducerFactory = require('../../lib/reducer/factory')
 
-// const rs = require('./reducer-entity-source')
+// const rs = require('./reducer-entity-request')
 // const resolveReducer = require('./reducer')
 
 // let store