diff --git a/NAMESPACE b/NAMESPACE
index dc8481305363622832f63a55d36baa4c1fd24eab..35aff21d1b6fc7d5b2b39ad396078454113f1b9b 100644
--- a/NAMESPACE
+++ b/NAMESPACE
@@ -18,7 +18,7 @@ export(readNWISsite)
 export(readNWISuv)
 export(readWQPdata)
 export(readWQPqw)
-export(renameColumns)
+export(renameNWISColumns)
 export(whatNWISdata)
 export(whatNWISsites)
 export(whatWQPsites)
diff --git a/R/importRDB1.r b/R/importRDB1.r
index e9c409b1cb33bcbc37c119f7729e56d25ea858f1..f5ed78d8ba3cb8443f8382fe3ef9078ea63b95d6 100644
--- a/R/importRDB1.r
+++ b/R/importRDB1.r
@@ -57,6 +57,12 @@ importRDB1 <- function(obs_url, asDateTime=FALSE, qw=FALSE, convertType = TRUE,
   }
   
   if(url.exists(obs_url)){
+    
+    # 400 bad site id
+    # 404 outside date range, wrong pcode
+    # 200 cool
+    
+    
     retval = tryCatch({
       h <- basicHeaderGatherer()
       doc <- getURL(obs_url, headerfunction = h$update)
diff --git a/R/importWaterML1.r b/R/importWaterML1.r
index cffff197855b0c377cc7666ffd5a0a643c6f9d05..af4227eb01d216baab8dfaf3b7cd7cf18573fc5c 100644
--- a/R/importWaterML1.r
+++ b/R/importWaterML1.r
@@ -115,130 +115,136 @@ importWaterML1 <- function(obs_url,asDateTime=FALSE, tz=""){
       
       value <- as.numeric(xpathSApply(subChunk, "ns1:value",namespaces = chunkNS, xmlValue))  
       
-      value[value == noValue] <- NA
-          
-      attNames <- xpathSApply(subChunk, "ns1:value/@*",namespaces = chunkNS)
-      attributeNames <- unique(names(attNames))
-
-      x <- lapply(attributeNames, function(x) xpathSApply(subChunk, paste0("ns1:value/@",x),namespaces = chunkNS))
-      
-      
-      methodDescription <- as.character(xpathApply(subChunk, "ns1:method/ns1:methodDescription", namespaces = chunkNS, xmlValue))
-      
-      if(length(methodDescription) > 0 & methodDescription != ""){
-        valueName <- paste("X",methodDescription,pCode,statCd,sep="_") 
-      } else {
-        valueName <- paste("X",pCode,statCd,sep="_") 
-      }
-      
-       
-      assign(valueName,value)
+      if(length(value)!=0){
       
-      df <- data.frame(agency = rep(agency,length(value)),
-                       site_no = rep(site,length(value)),
-                       stringsAsFactors=FALSE)
-      
-      if(length(attributeNames) > 0){
-        for(k in 1:length(attributeNames)){
-          attVal <- as.character(x[[k]])
-          if(length(attVal) == nrow(df)){
-            df$temp <- as.character(x[[k]])
+        value[value == noValue] <- NA
             
-          } else {
-            attrList <- xpathApply(subChunk, "ns1:value", namespaces = chunkNS, xmlAttrs)
-            df$temp <- sapply(1:nrow(df),function(x) as.character(attrList[[x]][attributeNames[k]]))
-            df$temp[is.na(df$temp)] <- ""
-          }
-          names(df)[which(names(df) %in% "temp")] <- attributeNames[k]
-          
+        attNames <- xpathSApply(subChunk, "ns1:value/@*",namespaces = chunkNS)
+        attributeNames <- unique(names(attNames))
+  
+        x <- lapply(attributeNames, function(x) xpathSApply(subChunk, paste0("ns1:value/@",x),namespaces = chunkNS))
+        
+        
+        methodDescription <- as.character(xpathApply(subChunk, "ns1:method/ns1:methodDescription", namespaces = chunkNS, xmlValue))
+        
+        valueName <- paste("X",pCode,statCd,sep="_")
+        
+        if(length(methodDescription) > 0){
+          if(methodDescription != ""){
+            valueName <- paste("X",methodDescription,pCode,statCd,sep="_") 
+          } 
         }
-      }
-      
-      df <- cbind(df, get(valueName))
-      names(df)[length(df)] <- valueName
-      
-      if("qualifiers" %in% names(df)){
-        qualName <- paste(valueName,"cd",sep="_")
-        names(df)[which(names(df) == "qualifiers")] <- qualName       
-      }
-      
-      if("dateTime" %in% attributeNames){
-        if(asDateTime){
-          
-          # Common options:
-          # YYYY
-          # YYYY-MM-DD
-          # YYYY-MM-DDTHH:MM
-          # YYYY-MM-DDTHH:MM:SS
-          # YYYY-MM-DDTHH:MM:SSZ
-          # YYYY-MM-DDTHH:MM:SS.000
-          # YYYY-MM-DDTHH:MM:SS.000-XX:00
-          datetime <- xpathSApply(subChunk, "ns1:value/@dateTime",namespaces = chunkNS)
-          
-          numChar <- nchar(datetime)
-          
-          if(abs(max(numChar) - min(numChar)) != 0){
-            message("Mixed date types")
-          } else {
-            numChar <- numChar[1]
-            if(numChar == 4){
-              datetime <- as.POSIXct(datetime, "%Y", tz = "UTC")
-            } else if(numChar == 10){
-              datetime <- as.POSIXct(datetime, "%Y-%m-%d", tz = "UTC")
-            } else if(numChar == 16){
-              datetime <- as.POSIXct(datetime, "%Y-%m-%dT%H:%M", tz = "UTC")
-            } else if(numChar == 19){
-              datetime <- as.POSIXct(datetime, "%Y-%m-%dT%H:%M:%S", tz = "UTC")
-            } else if(numChar == 20){
-              datetime <- as.POSIXct(datetime, "%Y-%m-%dT%H:%M:%S", tz = "UTC")
-            }  else if(numChar == 23){
-              datetime <- as.POSIXct(datetime, "%Y-%m-%dT%H:%M:%OS", tz = "UTC")
-            } else if(numChar == 24){
-              datetime <- substr(datetime,1,23)
-              datetime <- as.POSIXct(datetime, "%Y-%m-%dT%H:%M:%OS", tz = "UTC")
-            } else if(numChar == 29){
-              tzHours <- as.numeric(substr(datetime,24,numChar-3))
-
-              datetime <- substr(datetime,1,23)
-              datetime <- as.POSIXct(datetime, "%Y-%m-%dT%H:%M:%OS", tz = "UTC")
-              datetime <- datetime - tzHours*60*60
-              df$tz_cd <- as.character(zoneAbbrievs[tzHours]) 
+        
+         
+        assign(valueName,value)
+        
+        df <- data.frame(agency = rep(agency,length(value)),
+                         site_no = rep(site,length(value)),
+                         stringsAsFactors=FALSE)
+        
+        if(length(attributeNames) > 0){
+          for(k in 1:length(attributeNames)){
+            attVal <- as.character(x[[k]])
+            if(length(attVal) == nrow(df)){
+              df$temp <- as.character(x[[k]])
+              
+            } else {
+              attrList <- xpathApply(subChunk, "ns1:value", namespaces = chunkNS, xmlAttrs)
+              df$temp <- sapply(1:nrow(df),function(x) as.character(attrList[[x]][attributeNames[k]]))
+              df$temp[is.na(df$temp)] <- ""
             }
+            names(df)[which(names(df) %in% "temp")] <- attributeNames[k]
+            
           }
-          
-          if(tz != ""){
-            attr(datetime, "tzone") <- tz
+        }
+        
+        df <- cbind(df, get(valueName))
+        names(df)[length(df)] <- valueName
+        
+        if("qualifiers" %in% names(df)){
+          qualName <- paste(valueName,"cd",sep="_")
+          names(df)[which(names(df) == "qualifiers")] <- qualName       
+        }
+        
+        if("dateTime" %in% attributeNames){
+          if(asDateTime){
+            
+            # Common options:
+            # YYYY
+            # YYYY-MM-DD
+            # YYYY-MM-DDTHH:MM
+            # YYYY-MM-DDTHH:MM:SS
+            # YYYY-MM-DDTHH:MM:SSZ
+            # YYYY-MM-DDTHH:MM:SS.000
+            # YYYY-MM-DDTHH:MM:SS.000-XX:00
+            datetime <- xpathSApply(subChunk, "ns1:value/@dateTime",namespaces = chunkNS)
+            
+            numChar <- nchar(datetime)
+            
+            if(abs(max(numChar) - min(numChar)) != 0){
+              message("Mixed date types")
+            } else {
+              numChar <- numChar[1]
+              if(numChar == 4){
+                datetime <- as.POSIXct(datetime, "%Y", tz = "UTC")
+              } else if(numChar == 10){
+                datetime <- as.POSIXct(datetime, "%Y-%m-%d", tz = "UTC")
+              } else if(numChar == 16){
+                datetime <- as.POSIXct(datetime, "%Y-%m-%dT%H:%M", tz = "UTC")
+              } else if(numChar == 19){
+                datetime <- as.POSIXct(datetime, "%Y-%m-%dT%H:%M:%S", tz = "UTC")
+              } else if(numChar == 20){
+                datetime <- as.POSIXct(datetime, "%Y-%m-%dT%H:%M:%S", tz = "UTC")
+              }  else if(numChar == 23){
+                datetime <- as.POSIXct(datetime, "%Y-%m-%dT%H:%M:%OS", tz = "UTC")
+              } else if(numChar == 24){
+                datetime <- substr(datetime,1,23)
+                datetime <- as.POSIXct(datetime, "%Y-%m-%dT%H:%M:%OS", tz = "UTC")
+              } else if(numChar == 29){
+                tzOffset <- as.character(substr(datetime,24,numChar))
+                
+                tzHours <- as.numeric(substr(tzOffset,1,3))
+  
+                datetime <- substr(datetime,1,23)
+                datetime <- as.POSIXct(datetime, "%Y-%m-%dT%H:%M:%OS", tz = "UTC")
+                datetime <- datetime - tzHours*60*60
+                df$tz_cd <- as.character(zoneAbbrievs[tzOffset]) 
+              }
+            }
+            
+            if(tz != ""){
+              attr(datetime, "tzone") <- tz
+            }
+            
+            
+          } else {
+            datetime <- as.character(xpathSApply(subChunk, "ns1:value/@dateTime",namespaces = chunkNS))
           }
           
+          df$dateTime <- datetime     
           
+        }
+        
+        colNames <- names(df)
+        
+        if( exists("qualName")){
+          columnsOrdered <- c("agency","site_no","dateTime","tz_cd",attributeNames[attributeNames != "dateTime"],qualName,valueName)
         } else {
-          datetime <- as.character(xpathSApply(subChunk, "ns1:value/@dateTime",namespaces = chunkNS))
+          columnsOrdered <- c("agency","site_no","dateTime","tz_cd",attributeNames[attributeNames != "dateTime"],valueName)
         }
         
-        df$dateTime <- datetime     
+        columnsOrderd <- columnsOrdered[columnsOrdered %in% names(df)]
         
-      }
-      
-      colNames <- names(df)
-      
-      if( exists("qualName")){
-        columnsOrdered <- c("agency","site_no","dateTime","tz_cd",attributeNames[attributeNames != "dateTime"],qualName,valueName)
-      } else {
-        columnsOrdered <- c("agency","site_no","dateTime","tz_cd",attributeNames[attributeNames != "dateTime"],valueName)
-      }
-      
-      columnsOrderd <- columnsOrdered[columnsOrdered %in% names(df)]
-      
-      df <- df[,columnsOrderd]
-                
-      if (1 == i & valuesIndex[1] == j){
-        mergedDF <- df
-      } else {
-        similarNames <- intersect(names(mergedDF), names(df))
-        mergedDF <- merge(mergedDF, df,by=similarNames,all=TRUE)
+        df <- df[,columnsOrderd]
+                  
+        if (1 == i & valuesIndex[1] == j){
+          mergedDF <- df
+        } else {
+          similarNames <- intersect(names(mergedDF), names(df))
+          mergedDF <- merge(mergedDF, df,by=similarNames,all=TRUE)
+        }
       }
     }
-    
   }
   
   return (mergedDF)