diff --git a/.gitignore b/.gitignore
index 7ff281f..02c5d17 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,7 +8,7 @@
 localgrunt.config
 
 # testing copies
-../demo/scripts/odatajs-4.0.0-beta-01*
+../demo/scripts/odatajs-4.0.0-*
 
 # build artefacts
 #build/
diff --git a/Gruntfile.js b/Gruntfile.js
index 6bf2290..faff8d0 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -36,8 +36,8 @@
 
     "toBrowser" : {
       "release" : {
-          options: { index : "src/index-browser.js" },
-          src: ["src/lib/**/*.js", '!**/*-node.*'], 
+          options: { index : "index-browser.js" },
+          src: ["lib/**/*.js", '!**/*-node.*'],
           dest: "_build/lib/<%= artifactname %>.js"
       }
     },
@@ -55,7 +55,7 @@
     },
     "jsdoc" : {
       "src" : {
-          src: ["src/**/*.js"], 
+          src: ["index.js","lib/**/*.js"],
           options: { destination: "_build/doc-src", verbose : true, debug : true, pedantic : true }
       }
     },
@@ -135,7 +135,7 @@
   ]);
 
   
-  grunt.registerTask('release_sign','Sign the files which are released (run "grunt release" before"',[
+  grunt.registerTask('release-sign','Sign the files which are released (run "grunt release" before"',[
     'sign:release','sign:asc','sign:asc-verify'
   ]);
 
diff --git a/README.md b/README.md
index 83d0f68..62ee639 100644
--- a/README.md
+++ b/README.md
@@ -19,13 +19,13 @@
 ## Olingo OData Client for JavaScript
 The Olingo OData Client for JavaScript (odatajs) is a library written in JavaScript that enables browser based frontend applications to easily use the OData protocol for communication with application servers.
 
-This library "odatajs-4.0.0-beta-01.min.js" supports only the OData V4 protocol.
+This library "odatajs-4.0.0.min.js" supports only the OData V4 protocol.
 
 For using the OData protocols V1-V3 please refer to the [datajs library](http://datajs.codeplex.com/)
 
 The odatajs library can be included in any html page with the script tag (for example)
 ```
-<script type="text/javascript" src="./sources/odatajs-4.0.0-beta-01.min.js"></script>
+<script type="text/javascript" src="./sources/odatajs-4.0.0.min.js"></script>
 ```
 and its features can be used through the `odatajs` namespace (or `window.odatajs`). The odatajs library can be used together with the datajs library which uses the `window.OData` namespace.
 
diff --git a/grunt-config/custom-tasks/sign.js b/grunt-config/custom-tasks/sign.js
index 7f6319c..3db3f73 100644
--- a/grunt-config/custom-tasks/sign.js
+++ b/grunt-config/custom-tasks/sign.js
@@ -59,7 +59,7 @@
                 pipeTo = workItem.src+'.md5';
 
                 grunt.log.writeln(chalk.yellow('Signing ('+workItem.type+') ' + fileName + " ..."));
-                //openssl dgst -md5 odatajs.4.0.0-beta01.nupkg
+                //openssl dgst -md5 odatajs.4.0.0.nupkg
                 taskOptions = { 
                     cmd : 'openssl', 
                     args: ['dgst','-md5',fileName],
@@ -70,7 +70,7 @@
 
                 grunt.log.writeln(chalk.yellow('Signing ('+workItem.type+') ' + fileName + " ..."));
 
-                //gpg --print-md SHA512 odatajs-4.0.0-beta-01-RC02-doc.zip
+                //gpg --print-md SHA512 odatajs-4.0.0-doc.zip
                 taskOptions = { 
                     cmd : 'gpg', 
                     args: ['--print-md','SHA512',fileName],
@@ -81,7 +81,7 @@
 
                 grunt.log.writeln(chalk.yellow('Signing ('+workItem.type+') ' + fileName + " ..."));
                 
-                //gpg --armor --detach-sign odatajs-4.0.0-beta-01-RC02-sources.zip
+                //gpg --armor --detach-sign odatajs-4.0.0-sources.zip
                 taskOptions = { 
                     cmd : 'gpg', 
                     args: ['--armor','--detach-sign',fileName],
@@ -93,7 +93,7 @@
 
                 grunt.log.writeln(chalk.yellow('Verify ('+workItem.type+') ' +fileName+ '.asc' + " ..."));
                 
-                //gpg --verify --detach-sign odatajs-4.0.0-beta-01-RC02-sources.zip.asc 
+                //gpg --verify --detach-sign odatajs-4.0.0-sources.zip.asc
                 taskOptions = { 
                     cmd : 'gpg', 
                     args: ['--verify', fileName+'.asc'],
diff --git a/grunt-config/nugetpack.nuspec b/grunt-config/nugetpack.nuspec
index 120cd7d..a0c7861 100644
--- a/grunt-config/nugetpack.nuspec
+++ b/grunt-config/nugetpack.nuspec
@@ -4,7 +4,7 @@
     <title>Olingo OData Client for JavaScript</title>
     <id>odatajs</id>
     <tags>restful api open protocol odata client javascript</tags>
-    <version>4.0.0-beta01</version>
+    <version>4.0.0</version>
     <authors>Apache Olingo (Challen He, Kobler-Morris Sven)</authors>
     <owners>Apache Olingo</owners>
     <licenseUrl>http://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
diff --git a/grunt-config/rat-config.js b/grunt-config/rat-config.js
index 23871ae..2ee5b77 100644
--- a/grunt-config/rat-config.js
+++ b/grunt-config/rat-config.js
@@ -1,4 +1,3 @@
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -17,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 module.exports = function(grunt) {
   
   
@@ -31,7 +31,7 @@
         ] },
       files: [
         /*{ src: ['./../_dist/<%= artifactname %>/doc'], options:{ tag:"dist-doc"}},generated*/
-        { src: ['./src'], options:{ tag:"src"}},
+        { src: ['./lib'], options:{ tag:"lib"}},
         { src: ['./tests'], options:{ tag:"tests"}},
         { src: ['./demo'], options:{ tag:"demo"}},
         { src: ['./grunt-config'], options:{ tag:"grunt-config" }},
@@ -48,7 +48,7 @@
           "JSLib.sln","package.json", "mocha.opts","info.txt"
         ] },
       files: [
-        { src: ['./src'], options:{ tag:"src"}},
+        { src: ['./lib'], options:{ tag:"lib"}},
         { src: ['./tests'], options:{ tag:"tests"}},
         { src: ['./demo'], options:{ tag:"demo"}},
         { src: ['./grunt-config'], options:{ tag:"grunt-config" }},
diff --git a/grunt-config/release-config.js b/grunt-config/release-config.js
index 6865bb1..3df970e 100644
--- a/grunt-config/release-config.js
+++ b/grunt-config/release-config.js
@@ -48,7 +48,7 @@
   grunt.config.merge( { 
     'jsdoc' : { // generate documentation
       "release-doc-src" : {
-        src: ['src/**/*.js'], 
+        src: ['**/*.js'],
         options: {
           destination: './_dist/<%= artifactname %>/doc',
           verbose : false 
@@ -71,7 +71,7 @@
       },
       "release-nuget": {
           files: [
-              { expand: true, cwd: '_build', src: ['odatajs.4.0.0-beta01.nupkg'], dest: './_dist/<%= artifactname %>', filter: 'isFile' },
+              { expand: true, cwd: '_build', src: ['odatajs.4.0.0.nupkg'], dest: './_dist/<%= artifactname %>', filter: 'isFile' },
           ]
       },
       "release-doc" : {
diff --git a/grunt-config/sign-config.js b/grunt-config/sign-config.js
index a0ff676..6c827e3 100644
--- a/grunt-config/sign-config.js
+++ b/grunt-config/sign-config.js
@@ -28,7 +28,7 @@
         cwd : './_dist/<%= artifactname %>/',
         src : [ 
           '<%= artifactname %>-lib.zip',
-          'odatajs.4.0.0-beta01.nupkg',
+          'odatajs.4.0.0.nupkg',
           '<%= artifactname %>-doc.zip',
           '<%= artifactname %>-sources.zip'
         ]
@@ -39,7 +39,7 @@
         cwd : './_dist/<%= artifactname %>/',
         src : [ 
           '<%= artifactname %>-lib.zip',
-          'odatajs.4.0.0-beta01.nupkg',
+          'odatajs.4.0.0.nupkg',
           '<%= artifactname %>-doc.zip',
           '<%= artifactname %>-sources.zip'
         ]
@@ -50,7 +50,7 @@
         cwd : './_dist/<%= artifactname %>/',
         src : [ 
           '<%= artifactname %>-lib.zip',
-          'odatajs.4.0.0-beta01.nupkg',
+          'odatajs.4.0.0.nupkg',
           '<%= artifactname %>-doc.zip',
           '<%= artifactname %>-sources.zip'
         ]
diff --git a/src/index-browser.js b/index-browser.js
similarity index 100%
rename from src/index-browser.js
rename to index-browser.js
diff --git a/src/index-node.js b/index.js
similarity index 100%
rename from src/index-node.js
rename to index.js
diff --git a/src/lib/cache.js b/lib/cache.js
similarity index 100%
rename from src/lib/cache.js
rename to lib/cache.js
diff --git a/src/lib/cache/source.js b/lib/cache/source.js
similarity index 100%
rename from src/lib/cache/source.js
rename to lib/cache/source.js
diff --git a/src/lib/deferred.js b/lib/deferred.js
similarity index 100%
rename from src/lib/deferred.js
rename to lib/deferred.js
diff --git a/src/lib/odata.js b/lib/odata.js
similarity index 100%
rename from src/lib/odata.js
rename to lib/odata.js
diff --git a/src/lib/odata/batch.js b/lib/odata/batch.js
similarity index 100%
rename from src/lib/odata/batch.js
rename to lib/odata/batch.js
diff --git a/src/lib/odata/handler.js b/lib/odata/handler.js
similarity index 100%
rename from src/lib/odata/handler.js
rename to lib/odata/handler.js
diff --git a/src/lib/odata/json.js b/lib/odata/json.js
similarity index 100%
rename from src/lib/odata/json.js
rename to lib/odata/json.js
diff --git a/src/lib/odata/metadata.js b/lib/odata/metadata.js
similarity index 100%
rename from src/lib/odata/metadata.js
rename to lib/odata/metadata.js
diff --git a/src/lib/odata/net-browser.js b/lib/odata/net-browser.js
similarity index 100%
rename from src/lib/odata/net-browser.js
rename to lib/odata/net-browser.js
diff --git a/src/lib/odata/net.js b/lib/odata/net.js
similarity index 100%
rename from src/lib/odata/net.js
rename to lib/odata/net.js
diff --git a/src/lib/odata/odatautils.js b/lib/odata/odatautils.js
similarity index 100%
rename from src/lib/odata/odatautils.js
rename to lib/odata/odatautils.js
diff --git a/src/lib/store.js b/lib/store.js
similarity index 100%
rename from src/lib/store.js
rename to lib/store.js
diff --git a/src/lib/store/dom.js b/lib/store/dom.js
similarity index 100%
rename from src/lib/store/dom.js
rename to lib/store/dom.js
diff --git a/src/lib/store/indexeddb.js b/lib/store/indexeddb.js
similarity index 100%
rename from src/lib/store/indexeddb.js
rename to lib/store/indexeddb.js
diff --git a/src/lib/store/memory.js b/lib/store/memory.js
similarity index 100%
rename from src/lib/store/memory.js
rename to lib/store/memory.js
diff --git a/src/lib/utils.js b/lib/utils.js
similarity index 100%
rename from src/lib/utils.js
rename to lib/utils.js
diff --git a/src/lib/xml.js b/lib/xml.js
similarity index 100%
rename from src/lib/xml.js
rename to lib/xml.js
diff --git a/package.json b/package.json
index e48ba0a..044cb81 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
 {
   "name": "odatajs",
   "version": "4.0.0",
-  "postfix": "beta-01",
+  "postfix": "",
   "releaseCandidate": "",
   "title": "Olingo OData Client for JavaScript",
   "description": "the Olingo OData Client for JavaScript library is a new cross-browser JavaScript library that enables data-centric web applications by leveraging modern protocols such as JSON and OData and HTML5-enabled browser features. It's designed to be small, fast and easy to use.",
diff --git a/src/index.js b/src/index.js
deleted file mode 100644
index 28bf066..0000000
--- a/src/index.js
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-var odatajs = {};
-
-odatajs.version = {
-    major: 4,
-    minor: 0,
-    build: 0
-};
-
-// core stuff, alway needed
-odatajs.deferred = require('./lib/deferred.js');
-odatajs.utils = require('./lib/utils.js');
-
-// only neede for xml metadata
-odatajs.xml = require('./lib/ext/xml.js');
-
-// only need in browser case
-odatajs.oData = require('./lib/odata.js');
-odatajs.store = require('./lib/store.js');
-odatajs.cache = require('./lib/cache.js');
-
-if (typeof window !== 'undefined') {
-    //expose to browsers window object
-    window.odatajs = odatajs;
-} else {
-    //expose in commonjs style
-    odatajs.node = "node";
-    module.exports = odatajs;
-}
diff --git a/test/test-demo-scenario.js b/test/test-demo-scenario.js
index 71e37ff..a4650ac 100644
--- a/test/test-demo-scenario.js
+++ b/test/test-demo-scenario.js
@@ -18,7 +18,7 @@
  */
 'use strict';
 
-var odatajs = require('./../src/index-node.js');
+var odatajs = require('./../index.js');
 var chai = require('chai');
 var assert = chai.assert;
 
diff --git a/test/test-odata-json.js b/test/test-odata-json.js
index 32c243d..fd02881 100644
--- a/test/test-odata-json.js
+++ b/test/test-odata-json.js
@@ -18,7 +18,7 @@
  */
 'use strict';
 
-var odatajs = require('./../src/index-node.js');
+var odatajs = require('./../index.js');
 var chai = require('chai');
 var assert = chai.assert;
 
diff --git a/test/test-utils.js b/test/test-utils.js
index f377029..720542b 100644
--- a/test/test-utils.js
+++ b/test/test-utils.js
@@ -18,7 +18,7 @@
  */
 'use strict';
 
-var odatajs = require('./../src/index-node.js');
+var odatajs = require('./../index.js');
 var chai = require('chai');
 var assert = chai.assert;
 
diff --git a/tests/node-test-setup.js b/tests/node-test-setup.js
index 838bb36..ebc82ea 100644
--- a/tests/node-test-setup.js
+++ b/tests/node-test-setup.js
@@ -24,7 +24,7 @@
 
 //lib
 datajs = require('././lib/datajs.js');
-OData = require('./../src/lib/odata.js');
+OData = require('././odata.js');
 
 
 
