remove print statements
diff --git a/api.go b/api.go
index 75e87fa..b1fa4be 100644
--- a/api.go
+++ b/api.go
@@ -2,7 +2,6 @@
 
 import (
 	"encoding/json"
-	"fmt"
 	"github.com/30x/apid-core"
 	"github.com/30x/apidQuota/constants"
 	"github.com/30x/apidQuota/globalVariables"
@@ -51,7 +50,6 @@
 		return
 	}
 
-	fmt.Println("test2 : ", results)
 	respMap := results.ToAPIResponse()
 	respbytes, err := json.Marshal(respMap)
 
diff --git a/quotaBucket/apiUtil.go b/quotaBucket/apiUtil.go
index 707ab62..b739cad 100644
--- a/quotaBucket/apiUtil.go
+++ b/quotaBucket/apiUtil.go
@@ -5,7 +5,6 @@
 	"reflect"
 	"time"
 	"github.com/30x/apidQuota/constants"
-	"fmt"
 )
 
 const (
@@ -25,7 +24,6 @@
 }
 
 func (qBucketRequest *QuotaBucket) FromAPIRequest(quotaBucketMap map[string]interface{}) error {
-	fmt.Println("qBucketRequest: ", qBucketRequest.quotaBucketData )
 	var cacheKey string
 	var edgeOrgID, id, timeUnit, quotaType string
 	var interval int
@@ -176,8 +174,6 @@
 					if err != nil {
 						return errors.New("error creating quotaBucket: " + err.Error())
 					}
-					fmt.Println("qbucket: ", qBucketRequest)
-					fmt.Println("newqbucket: ", newQBucket)
 
 					qBucketRequest.quotaBucketData = newQBucket.quotaBucketData
 
diff --git a/quotaBucket/quotaBucket.go b/quotaBucket/quotaBucket.go
index 5b81b1d..0a06b21 100644
--- a/quotaBucket/quotaBucket.go
+++ b/quotaBucket/quotaBucket.go
@@ -3,9 +3,9 @@
 import (
 	"errors"
 	"github.com/30x/apidQuota/constants"
+	"github.com/30x/apidQuota/globalVariables"
 	"strings"
 	"time"
-	"fmt"
 )
 
 var (
@@ -87,6 +87,7 @@
 	Synchronous           bool
 	SyncTimeInSec         int64
 	SyncMessageCount      int64
+	AsyncMessageCounter int64
 	QTicker *time.Ticker
 
 }
@@ -116,6 +117,7 @@
 		Synchronous:           synchronous,
 		SyncTimeInSec:         syncTimeInSec,
 		SyncMessageCount:      syncMessageCount,
+		AsyncMessageCounter: int64(-1),
 		QTicker: &time.Ticker{},
 	}
 
@@ -128,14 +130,14 @@
 		return nil, err
 	}
 
-	//for async start the scheduler
+	//for async SetAsyncMessageCounter to 0 and also start the scheduler
 	if distributed && !synchronous{
+		quotaBucket.SetAsyncMessageCounter(0)
 		quotaBucket.quotaBucketData.QTicker =  time.NewTicker(time.Second)
 		go func() {
 			count := 0
-			fmt.Println("inside create ticker")
 			for t := range quotaBucket.quotaBucketData.QTicker.C {
-				fmt.Println("Ticker ticked ", t)
+				globalVariables.Log.Debug("t: : ", t.String())
 				if count > 10 {
 					quotaBucket.getTicker().Stop()
 				}
@@ -144,7 +146,6 @@
 		}()
 	}
 
-	fmt.Println("quotaBucketdata: " ,quotaBucket.quotaBucketData)
 	return quotaBucket, nil
 
 }
@@ -216,6 +217,9 @@
 	return q.quotaBucketData.Synchronous
 }
 
+func (qbucket *QuotaBucket) SetAsyncMessageCounter(count int64) {
+	qbucket.quotaBucketData.AsyncMessageCounter = count
+}
 
 func (q *QuotaBucket) getTicker() *time.Ticker {
 	return q.quotaBucketData.QTicker
diff --git a/quotaBucket/quotaBucketType.go b/quotaBucket/quotaBucketType.go
index b6ea239..3c73d46 100644
--- a/quotaBucket/quotaBucketType.go
+++ b/quotaBucket/quotaBucketType.go
@@ -2,9 +2,7 @@
 
 import (
 	"errors"
-	"fmt"
 	"github.com/30x/apidQuota/services"
-	"time"
 )
 
 type QuotaBucketType interface {
@@ -44,7 +42,6 @@
 
 func (sQuotaBucket SynchronousQuotaBucketType) incrementQuotaCount(q *QuotaBucket) (*QuotaBucketResults, error) {
 
-	fmt.Println("increment count for sync")
 	maxCount := q.GetMaxCount()
 	exceededCount := false
 	allowedCount := int64(0)
@@ -112,17 +109,7 @@
 
 func (quotaBucketType AsynchronousQuotaBucketType) incrementQuotaCount(q *QuotaBucket) (*QuotaBucketResults, error) {
 	//getCount()
-	fmt.Println("increment count for async")
-	results := &QuotaBucketResults{
-		EdgeOrgID:      q.GetEdgeOrgID(),
-		ID:             q.GetID(),
-		exceededTokens: true,
-		currentTokens:  51,
-		MaxCount:       50,
-		startedAt:      time.Now().Unix(),
-		expiresAt:      time.Now().Unix(),
-	}
-	return results, nil
+	return nil, nil
 }
 
 func (quotaBucketType AsynchronousQuotaBucketType) resetQuotaForCurrentPeriod(q *QuotaBucket) (*QuotaBucketResults, error) {
@@ -136,7 +123,6 @@
 	return nil
 }
 func (sQuotaBucket NonDistributedQuotaBucketType) incrementQuotaCount(qBucket *QuotaBucket) (*QuotaBucketResults, error) {
-	fmt.Println("increment count for nondistributed.")
 
 	return nil, nil
 }
diff --git a/quotaBucket/quotaBucket_test.go b/quotaBucket/quotaBucket_test.go
index 3a8fcfb..08b580c 100644
--- a/quotaBucket/quotaBucket_test.go
+++ b/quotaBucket/quotaBucket_test.go
@@ -407,23 +407,6 @@
 			Fail("Exprected true, returned: false")
 		}
 
-		//end Time in period is now // cant set end time to now and tes.. by the time it evaluates isCurrentPeriod the period.endTime will be before time.now()
-		//fmt.Println("entTIme is now : ")
-		//startTime = time.Now().Unix()
-		//period = NewQuotaPeriod(time.Now().AddDate(0,-1,-1).Unix(),
-		//	time.Now().AddDate(0,0,-1).Unix(),
-		//	time.Now().Unix())
-		//quotaBucket = NewQuotaBucket(edgeOrgID, id, interval, timeUnit, quotaType, preciseAtSecondsLevel, period, startTime, maxCount, bucketType)
-		//err = quotaBucket.Validate()
-		//if err != nil {
-		//	Fail("no error expected but got error: " + err.Error())
-		//}
-		//
-		//period.IsCurrentPeriod(quotaBucket)
-		//if ok := period.IsCurrentPeriod(quotaBucket); !ok{
-		//	Fail("Exprected true, returned: false")
-		//}
-
 		//end Time in period is after now
 		startTime = time.Now().UTC().Unix()
 		quotaBucket, err = NewQuotaBucket(edgeOrgID, id, interval, timeUnit,
diff --git a/quotaBucket/quotaCache.go b/quotaBucket/quotaCache.go
index e0cfe11..4c8338e 100644
--- a/quotaBucket/quotaCache.go
+++ b/quotaBucket/quotaCache.go
@@ -4,7 +4,6 @@
 	"github.com/30x/apidQuota/constants"
 	"time"
 	"sync"
-	"fmt"
 )
 
 var quotaCachelock = sync.RWMutex{}
@@ -22,26 +21,28 @@
 
 func getFromCache(cacheKey string) (*QuotaBucket,bool) {
 	quotaCachelock.Lock()
+	defer quotaCachelock.Unlock()
 	qBucketCache, ok := quotaCache[cacheKey]
-	quotaCachelock.Unlock()
 	if !ok {
-		fmt.Println("not in cache. add to cache.")
 		return nil,false
 	}
 
 	isExpired := time.Unix(qBucketCache.expiryTime, 0).Before(time.Now().UTC())
 	if isExpired {
-		fmt.Println("quotaBucket expired: remove from cache and return false.")
 		removeFromCache(cacheKey, qBucketCache)
 		return nil, false
 	}
 
+	// update expiry time every time you access.
+	ttl := time.Now().UTC().Add(constants.CacheTTL).Unix()
+	qBucketCache.expiryTime = ttl
+	quotaCache[cacheKey] = qBucketCache
+
 	return qBucketCache.qBucket, true
 
 }
 
 func removeFromCache(cacheKey string, qBucketCache quotaBucketCache) {
-	fmt.Println("inside remove from cache")
 	//for async Stop the scheduler.
 	if qBucketCache.qBucket.Distributed && !qBucketCache.qBucket.IsSynchronous(){
 		qBucketCache.qBucket.getTicker().Stop()
@@ -61,10 +62,7 @@
 		expiryTime: ttl,
 	}
 
-	fmt.Println("qbucket in cache: ", qBucketToAdd.getTicker())
 	quotaCachelock.Lock()
 	quotaCache[cacheKey] = qCacheData
 	quotaCachelock.Unlock()
-	fmt.Println("duration: " ,time.Unix(qCacheData.expiryTime,0).String())
-	fmt.Println("now: ", time.Now().UTC())
 }
diff --git a/services/counterServiceHelper.go b/services/counterServiceHelper.go
index a2c95aa..21fea87 100644
--- a/services/counterServiceHelper.go
+++ b/services/counterServiceHelper.go
@@ -4,7 +4,6 @@
 	"bytes"
 	"encoding/json"
 	"errors"
-	"fmt"
 	"github.com/30x/apidQuota/constants"
 	"github.com/30x/apidQuota/globalVariables"
 	"io/ioutil"
@@ -32,7 +31,6 @@
 }
 
 func IncrementAndGetCount(orgID string, quotaKey string, count int64, startTimeInt int64, endTimeInt int64) (int64, error) {
-	fmt.Println("calling counter service")
 	headers := http.Header{}
 	headers.Set("Accept", "application/json")
 	headers.Set("Content-Type", "application/json")
@@ -56,9 +54,6 @@
 	reqBody[startTime] = startTimeInt * int64(1000)
 	reqBody[endTime] = endTimeInt * int64(1000)
 
-	fmt.Println("startTime: ", startTimeInt)
-	fmt.Println("endTime: ", endTimeInt)
-
 	reqBodyBytes, err := json.Marshal(reqBody)
 	if err != nil {
 		return 0, errors.New(constants.MarshalJSONError)
@@ -73,7 +68,6 @@
 		ContentLength: int64(contentLength),
 	}
 
-	fmt.Println("req: ", request)
 	resp, err := client.Do(request)
 
 	if err != nil {
@@ -104,7 +98,6 @@
 	if !ok {
 		return 0, errors.New(`invalid response from counter service. field 'count' not sent in the response`)
 	}
-	fmt.Println("respcount: ", respCount)
 
 	globalVariables.Log.Debug("responseCount: ", respCount)