} else {
                ret, err = h.client.GetCluster(project, logicalCloud, name)
                if err != nil {
+                       if err.Error() == "Cluster Reference does not exist" {
+                               http.Error(w, err.Error(), http.StatusNotFound)
+                               return
+                       }
                        http.Error(w, err.Error(), http.StatusInternalServerError)
                        return
                }
 
        ret, err := h.client.UpdateCluster(project, logicalCloud, name, v)
        if err != nil {
+               if err.Error() == "Cluster Reference does not exist" {
+                       http.Error(w, err.Error(), http.StatusNotFound)
+                       return
+               }
                http.Error(w, err.Error(),
                        http.StatusInternalServerError)
                return
        }
        w.Header().Set("Content-Type", "application/json")
-       w.WriteHeader(http.StatusCreated)
+       w.WriteHeader(http.StatusOK)
        err = json.NewEncoder(w).Encode(ret)
        if err != nil {
                http.Error(w, err.Error(),
 
        } else {
                ret, err = h.client.GetKVPair(project, logicalCloud, name)
                if err != nil {
+                       if err.Error() == "KV Pair does not exist" {
+                               http.Error(w, err.Error(), http.StatusNotFound)
+                               return
+                       }
                        http.Error(w, err.Error(), http.StatusInternalServerError)
                        return
                }
 
        ret, err := h.client.UpdateKVPair(project, logicalCloud, name, v)
        if err != nil {
+               if err.Error() == "KV Pair does not exist" {
+                       http.Error(w, err.Error(), http.StatusNotFound)
+                       return
+               }
                http.Error(w, err.Error(),
                        http.StatusInternalServerError)
                return
        }
        w.Header().Set("Content-Type", "application/json")
-       w.WriteHeader(http.StatusCreated)
+       w.WriteHeader(http.StatusOK)
        err = json.NewEncoder(w).Encode(ret)
        if err != nil {
                http.Error(w, err.Error(),
 
        } else {
                ret, err = h.client.Get(project, name)
                if err != nil {
+                       if err.Error() == "Logical Cloud does not exist" {
+                               http.Error(w, err.Error(), http.StatusNotFound)
+                               return
+                       }
                        http.Error(w, err.Error(), http.StatusInternalServerError)
                        return
                }
 
        ret, err := h.client.Update(project, name, v)
        if err != nil {
+               if err.Error() == "Logical Cloud does not exist" {
+                       http.Error(w, err.Error(), http.StatusNotFound)
+                       return
+               }
                http.Error(w, err.Error(),
                        http.StatusInternalServerError)
                return
 
        err := h.client.Delete(project, name)
        if err != nil {
+               if err.Error() == "Logical Cloud does not exist" {
+                       http.Error(w, err.Error(), http.StatusNotFound)
+                       return
+               }
                http.Error(w, err.Error(), http.StatusInternalServerError)
                return
        }
        // Get logical cloud
        lc, err := h.client.Get(project, name)
        if err != nil {
+               if err.Error() == "Logical Cloud does not exist" {
+                       http.Error(w, err.Error(), http.StatusNotFound)
+                       return
+               }
                http.Error(w, err.Error(), http.StatusInternalServerError)
                return
        }
        clusters, err := h.clusterClient.GetAllClusters(project, name)
 
        if err != nil {
+               if err.Error() == "No Cluster References associated" {
+                       http.Error(w, err.Error(), http.StatusBadRequest)
+                       return
+               }
                http.Error(w, err.Error(), http.StatusInternalServerError)
                return
        }
 
        } else {
                ret, err = h.client.GetQuota(project, logicalCloud, name)
                if err != nil {
+                       if err.Error() == "Cluster Quota does not exist" {
+                               http.Error(w, err.Error(), http.StatusNotFound)
+                               return
+                       }
                        http.Error(w, err.Error(), http.StatusInternalServerError)
                        return
                }
 
        ret, err := h.client.UpdateQuota(project, logicalCloud, name, v)
        if err != nil {
+               if err.Error() == "Cluster Quota does not exist" {
+                       http.Error(w, err.Error(), http.StatusNotFound)
+                       return
+               }
                http.Error(w, err.Error(),
                        http.StatusInternalServerError)
                return
        }
        w.Header().Set("Content-Type", "application/json")
-       w.WriteHeader(http.StatusCreated)
+       w.WriteHeader(http.StatusOK)
        err = json.NewEncoder(w).Encode(ret)
        if err != nil {
                http.Error(w, err.Error(),
 
                        return
                }
        } else {
-               ret, err = h.client.GetAllUserPerms(project, logicalCloud)
+               ret, err = h.client.GetUserPerm(project, logicalCloud, name)
                if err != nil {
+                       if err.Error() == "User Permission does not exist" {
+                               http.Error(w, err.Error(), http.StatusNotFound)
+                               return
+                       }
                        http.Error(w, err.Error(), http.StatusInternalServerError)
                        return
                }
 
        ret, err := h.client.UpdateUserPerm(project, logicalCloud, name, v)
        if err != nil {
+               if err.Error() == "User Permission does not exist" {
+                       http.Error(w, err.Error(), http.StatusNotFound)
+                       return
+               }
                http.Error(w, err.Error(),
                        http.StatusInternalServerError)
                return
        }
        w.Header().Set("Content-Type", "application/json")
-       w.WriteHeader(http.StatusCreated)
+       w.WriteHeader(http.StatusOK)
        err = json.NewEncoder(w).Encode(ret)
        if err != nil {
                http.Error(w, err.Error(),
 
                return cl, nil
        }
 
-       return Cluster{}, pkgerrors.New("Error getting Cluster")
+       return Cluster{}, pkgerrors.New("Cluster Reference does not exist")
 }
 
 // GetAll returns all cluster references in the logical cloud
        if err != nil {
                return []Cluster{}, pkgerrors.Wrap(err, "Get All Cluster references")
        }
+       if len(values) == 0 {
+               return []Cluster{}, pkgerrors.New("No Cluster References associated")
+       }
 
        for _, value := range values {
                cl := Cluster{}
 
        //Check for name mismatch in cluster reference
        if c.MetaData.ClusterReference != clusterReference {
-               return Cluster{}, pkgerrors.New("Update Error - Cluster reference mismatch")
+               return Cluster{}, pkgerrors.New("Cluster Reference mismatch")
        }
        //Check if this Cluster reference exists
        _, err := v.GetCluster(project, logicalCloud, clusterReference)
        if err != nil {
-               return Cluster{}, pkgerrors.New("Update Error - Cluster reference doesn't exist")
+               return Cluster{}, pkgerrors.New("Cluster Reference does not exist")
        }
        err = v.util.DBInsert(v.storeName, key, nil, v.tagMeta, c)
        if err != nil {
 
                return kv, nil
        }
 
-       return KeyValue{}, pkgerrors.New("Error getting Key Value")
+       return KeyValue{}, pkgerrors.New("Key Value does not exist")
 }
 
 // Get All lists all key value pairs
        //Check if this Key Value exists
        _, err := v.GetKVPair(project, logicalCloud, kvPairName)
        if err != nil {
-               return KeyValue{}, pkgerrors.New("Update Error - Key Value Pair doesn't exist")
+               return KeyValue{}, pkgerrors.New("KV Pair does not exist")
        }
        err = v.util.DBInsert(v.storeName, key, nil, v.tagMeta, c)
        if err != nil {
 
        }
        value, err := v.util.DBFind(v.storeName, key, v.tagMeta)
        if err != nil {
-               return LogicalCloud{}, pkgerrors.Wrap(err, "Get Logical Cloud")
+               return LogicalCloud{}, pkgerrors.Wrap(err, "Error getting Logical Cloud")
        }
 
        //value is a byte array
                lc := LogicalCloud{}
                err = v.util.DBUnmarshal(value[0], &lc)
                if err != nil {
-                       return LogicalCloud{}, pkgerrors.Wrap(err, "Unmarshaling value")
+                       return LogicalCloud{}, pkgerrors.Wrap(err, "Error unmarshaling value")
                }
                return lc, nil
        }
 
-       return LogicalCloud{}, pkgerrors.New("Error getting Logical Cloud")
+       return LogicalCloud{}, pkgerrors.New("Logical Cloud does not exist")
 }
 
 // GetAll returns Logical Clouds in the project
        }
        // Check for mismatch, logicalCloudName and payload logical cloud name
        if c.MetaData.LogicalCloudName != logicalCloudName {
-               return LogicalCloud{}, pkgerrors.New("Update Error - Logical Cloud name mismatch")
+               return LogicalCloud{}, pkgerrors.New("Logical Cloud name mismatch")
        }
        //Check if this Logical Cloud exists
        _, err := v.Get(project, logicalCloudName)
        if err != nil {
-               return LogicalCloud{}, pkgerrors.New("Update Error - Logical Cloud doesn't exist")
+               return LogicalCloud{}, pkgerrors.New("Logical Cloud does not exist")
        }
        err = v.util.DBInsert(v.storeName, key, nil, v.tagMeta, c)
        if err != nil {
 
                return q, nil
        }
 
-       return Quota{}, pkgerrors.New("Error getting Quota")
+       return Quota{}, pkgerrors.New("Cluster Quota does not exist")
 }
 
 // GetAll returns all cluster quotas in the logical cloud
        //Check if this Quota exists
        _, err := v.GetQuota(project, logicalCloud, quotaName)
        if err != nil {
-               return Quota{}, pkgerrors.New("Update Error - Quota doesn't exist")
+               return Quota{}, pkgerrors.New("Cluster Quota does not exist")
        }
        err = v.util.DBInsert(v.storeName, key, nil, v.tagMeta, c)
        if err != nil {
 
                return up, nil
        }
 
-       return UserPermission{}, pkgerrors.New("Error getting User Permission")
+       return UserPermission{}, pkgerrors.New("User Permission does not exist")
 }
 
 // GetAll lists all user permissions
        _, err := v.GetUserPerm(project, logicalCloud, userPermName)
        if err != nil {
                return UserPermission{}, pkgerrors.New(
-                       "Update Error - User Permission doesn't exist")
+                       "User Permission does not exist")
        }
        err = v.util.DBInsert(v.storeName, key, nil, v.tagMeta, c)
        if err != nil {