diff --git a/src/index.js b/src/index.js
index 03d0181..94b0204 100644
--- a/src/index.js
+++ b/src/index.js
@@ -17,7 +17,9 @@ const crypto =require('crypto');
 * @param {number} length - defines the length of the salt that will be generated
 * @return {string} - returns the generated salt 
 */
- LazyCrypto.prototype.generateSalt=function(length){
+LazyCrypto.prototype.generateSalt=generateSalt;
+function generateSalt(length)
+{
     return crypto.randomBytes(Math.ceil(length/2))
     .toString('hex') /** convert to hexadecimal format */
     .slice(0,length);   /** return required number of characters */
@@ -30,7 +32,8 @@ const crypto =require('crypto');
 * @param {strng} salt - Required salt to use on hash creation
 * @return {object} - Returns an object containing salt and passwordhash
 */
-LazyCrypto.prototype.generateSha512Hash=function(password,salt){
+LazyCrypto.prototype.generateSha512Hash=generateSha512Hash
+function generateSha512Hash(password,salt){
 var hash=crypto.createHmac('sha512',salt); /** Hashing algorithm sha512 **/
      hash.update(password);
      var value= hash.digest('hex');
@@ -48,7 +51,7 @@ var hash=crypto.createHmac('sha512',salt); /** Hashing algorithm sha512 **/
  * @return {object} containing passwordSalt and passwordHash
  */
 LazyCrypto.prototype.generateSha512HashAndSalt=function(password,saltlength){
-    var salt=GenerateSalt(saltlength);
+    var salt=generateSalt(saltlength);
     var passwordData=generateSha512Hash(password,salt);
     return{
         passwordSalt:passwordData.salt,
@@ -79,7 +82,7 @@ LazyCrypto.prototype.validateSha512HashAndSalt=function(password,salt,passwordHa
  * @param {number} hours - defines tha ammount of hours the specific token will be available for
  * @param {length} length - devi
  */
-LazyCrypto.prototype.generateEmailVerificationToken=function(hours,length){
+LazyCrypto.prototype.generateVerificationToken=function(hours,length){
     //create random character token
     var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
     var token = '';
diff --git a/src/index.test.js b/src/index.test.js
index d4a3266..580f006 100644
--- a/src/index.test.js
+++ b/src/index.test.js
@@ -1,20 +1,62 @@
 var expect =require('chai').expect;
 var LazyCrypto=require('./index.js');
-
+var lazyCrypto=new LazyCrypto();
 describe("lazy-crypto",function(){
-    it('dummy test', function(){
-        expect(true).to.be.true;
+    it('Dummy Test', function(){
+        expect(lazyCrypto!=null||lazyCrypto!=undefined).to.be.true;
     });
+   
 });
 
-//LazyCrypto
-
-//generateEmailVerificationToken
+var token=lazyCrypto.generateVerificationToken(4,10);
+describe("Generate Verification Token Test",function(){
+    it("Token contains an expiration date",function(){
+        expect(token.expires instanceof Date).to.be.true;
+    })
+    it("Token contains token string",function(){
+        expect(token.token!=undefined && token.token!=null);
+    });
+});
 
-//validateSha512HashAndSalt
+var salt=lazyCrypto.generateSalt(20);
+describe("Generate Salt with length 20 Test",function(){
+    it("Salt was generated",function(){
+        expect(salt!=undefined&&salt!=null).to.be.true;
+    })
+    it("Salt length is valid",function(){
+        expect(salt.length==20).to.be.true;
+    })
+});
+var hash=lazyCrypto.generateSha512Hash('password',salt);
+describe("Generate SHA512 Hash with Salt",function(){
+    it("Hash was generated",function(){
+        expect(hash!=undefined&&hash!=null).to.be.true;
+    })
+    it("Hash and Salt are present on the result",function(){
+        expect(hash.passwordSalt!=undefined&&hash.passwordHash!=null);
+    })
+    it("Hash and salt are valid!",function(){
+        expect(lazyCrypto.validateSha512HashAndSalt("password",salt,hash));
+    })
+})
+describe('Validation of SHA512 Hash with Salt',function(){
+   it("Hash and salt are valid!",function(){
+        expect(lazyCrypto.validateSha512HashAndSalt("password",salt,hash));
+    })
+})
+var res=lazyCrypto.generateSha512HashAndSalt('password',20);
+describe("Generation of SHA 512 Hash along with a Unique Salt",function(){
+    it('Hash and Salt Generated',function(){
+        expect(res.passwordSalt!=undefined && res.passwordSalt!=null);
+    })
+    it('Salt generated has correct length',function(){
+        expect(res.passwordSalt.length==20)
+    })
+    it("Hash and salt are valid!",function(){
+        expect(lazyCrypto.validateSha512HashAndSalt("password",res.passwordSalt,res.passwordHash));
+    })
+})
 
 //generateSha512HashAndSalt
-
-//generateSha512Hash
-
-//generateSalt
\ No newline at end of file
+  //passwordSalt:passwordData.salt,
+    //    passwordHash:passwordData.passwordHash