diff --git a/R/importWaterML1.r b/R/importWaterML1.r
index 3eb1e8097aeecef5619f740457c64e1438e95d80..dcf4d5a08a9d976a7befceaf7f9c59577e524505 100644
--- a/R/importWaterML1.r
+++ b/R/importWaterML1.r
@@ -128,6 +128,7 @@ importWaterML1 <- function(obs_url,asDateTime=FALSE, tz=""){
   attList <- list()
   dataColumns <- c()
   qualColumns <- c()
+  mergedDF <- NULL
   
   for (i in 1:length(timeSeries)){
     
@@ -309,7 +310,7 @@ importWaterML1 <- function(obs_url,asDateTime=FALSE, tz=""){
         
         df <- df[,columnsOrderd]
                         
-        if (1 == i & valuesIndex[1] == j){
+        if (is.null(mergedDF)){
           mergedDF <- df          
         } else {
           similarNames <- intersect(names(mergedDF), names(df))
diff --git a/R/readNWISdata.r b/R/readNWISdata.r
index 7b27bcb18259456a36a51faee9afbceb9fbba788..8bcd4a151106c1c0b76d0267f9202a8a65963583 100644
--- a/R/readNWISdata.r
+++ b/R/readNWISdata.r
@@ -63,22 +63,18 @@ readNWISdata <- function(service="dv", ...){
 
   urlCall <- paste(paste(names(values),values,sep="="),collapse="&")
   
-  if(service %in% c("dv","iv","gwlevels")){
-    format <- "waterml"
+  format <- "waterml,1.1"
+  
+  if(service == "iv"){
+    baseURL <- "http://nwis.waterservices.usgs.gov/nwis/"
   } else {
-    format <- "rdb1,1"
+    baseURL <- "http://waterservices.usgs.gov/nwis/"
   }
   
-  baseURL <- paste0("http://waterservices.usgs.gov/nwis/",service,"/?format=",format,"&")
+  baseURL <- paste0(baseURL,service,"/?format=",format,"&")
   urlCall <- paste0(baseURL,urlCall)
   
-  if(service=="qwdata"){
-    urlCall <- paste0(urlCall,"&siteOutput=expanded")
-    retval <- importRDB1(urlCall)
-  } else {
-
-    retval <- importWaterML1(urlCall, asDateTime = ("iv" == service))
-  }
+  retval <- importWaterML1(urlCall, asDateTime = ("iv" == service))
   
   
   return(retval)
diff --git a/tests/testthat/tests_imports.R b/tests/testthat/tests_imports.R
new file mode 100644
index 0000000000000000000000000000000000000000..53ef4bc9a74b0b3dd0926defa218f06546539127
--- /dev/null
+++ b/tests/testthat/tests_imports.R
@@ -0,0 +1,118 @@
+context("importRDB_noCRAN")
+
+test_that("External importRDB1 tests", {
+  testthat::skip_on_cran()
+  
+  siteNumber <- "02177000"
+  startDate <- "2012-09-01"
+  endDate <- "2012-10-01"
+  offering <- "00003"
+  property <- "00060"
+   
+  obs_url <- constructNWISURL(siteNumber,property,
+            startDate,endDate,"dv",format="tsv")
+  data <- importRDB1(obs_url)
+  expect_is(data$datetime, 'character') 
+  
+  urlMultiPcodes <- constructNWISURL("04085427",c("00060","00010"),
+          startDate,endDate,"dv",statCd=c("00003","00001"),"tsv")
+  multiData <- importRDB1(urlMultiPcodes)
+  pCodeCols <- grep("X", colnames(multiData))
+  expect_that(length(pCodeCols)/2 > 2, is_true() )
+  
+  unitDataURL <- constructNWISURL(siteNumber,property,
+          "2013-11-03","2013-11-03","uv",format="tsv") #includes timezone switch
+  unitData <- importRDB1(unitDataURL, asDateTime=TRUE)
+  
+  expect_that(as.numeric(unitData[which(unitData$tz_cd == "EST")[1],"datetime"]),
+              equals(as.numeric(as.POSIXct("2013-11-03 01:00:00", tz="UTC")+60*60*5)))
+  
+  
+  qwURL <- constructNWISURL(c('04024430','04024000'),
+           c('34247','30234','32104','34220'),
+          "2010-11-03","","qw",format="rdb") 
+  qwData <- importRDB1(qwURL, qw=TRUE, tz="America/Chicago")
+  expect_is(qwData$sample_dt, 'Date')
+  expect_is(qwData$startDateTime, 'POSIXct')
+  
+  iceSite <- '04024430'
+  start <- "2014-11-09"
+  end <- "2014-11-28"
+  urlIce <- constructNWISURL(iceSite,"00060",start, end,"uv",format="tsv")
+  ice <- importRDB1(urlIce)
+  expect_that(sum(is.na(ice$X01_00060)) > 0, is_true())
+  
+  iceNoConvert <- importRDB1(urlIce, convertType=FALSE)
+  expect_that(sum(iceNoConvert$X01_00060 == "Ice") > 0, is_true())
+})
+
+context("importRDB")
+test_that("CRAN-friendly importRDB test", {
+  filePath <- system.file("extdata", package="dataRetrieval")
+  fileName <- "RDB1Example.txt"
+  fullPath <- file.path(filePath, fileName)
+  importUserRDB <- importRDB1(fullPath)
+  
+  # default is to turn dates to characters
+  expect_is(importUserRDB$datetime, 'character')
+  
+})
+
+context("importWaterML1")
+test_that("CRAN-friendly importWaterML1 test", {
+  filePath <- system.file("extdata", package="dataRetrieval")
+  fileName <- "WaterML1Example.xml"
+  fullPath <- file.path(filePath, fileName)
+  importUserWML1 <- importWaterML1(fullPath, asDateTime = TRUE)
+  
+  # default is to turn dates to characters
+  expect_is(importUserWML1$dateTime, 'POSIXct')
+  
+})
+
+test_that("External importWaterML1 test", {
+  testthat::skip_on_cran()
+  
+  siteNumber <- "02177000"
+  startDate <- "2012-09-01"
+  endDate <- "2012-10-01"
+  offering <- '00003'
+  property <- '00060'
+  obs_url <- constructNWISURL(siteNumber,property,startDate,endDate,'dv')
+  
+  data <- importWaterML1(obs_url,TRUE)
+  expect_is(data$dateTime, 'POSIXct')
+  
+  groundWaterSite <- "431049071324301"
+  startGW <- "2013-10-01"
+  endGW <- "2014-06-30"
+  groundwaterExampleURL <- constructNWISURL(groundWaterSite, NA,
+           startGW,endGW, service="gwlevels")
+  groundWater <- importWaterML1(groundwaterExampleURL)
+  
+  expect_is(groundWater$dateTime, 'character')
+  
+  unitDataURL <- constructNWISURL(siteNumber,property,
+          "2013-11-03","2013-11-03",'uv')
+  unitData <- importWaterML1(unitDataURL,TRUE)
+  expect_is(unitData$dateTime, 'POSIXct')
+  
+  
+  # Two sites, two pcodes, one site has two data descriptors:
+  siteNumber <- c('01480015',"04085427")
+  obs_url <- constructNWISURL(siteNumber,c("00060","00010"),startDate,endDate,'dv')
+  data <- importWaterML1(obs_url)
+  expect_that(length(unique(data$site_no)) == 2, is_true())
+  expect_that(ncol(data) == 10, is_true()) # 3 data, 3 remark codes, and 4 (agency, site, dateTime, tz)
+
+  inactiveSite <- "05212700"
+  inactiveSite <- constructNWISURL(inactiveSite, "00060", "2014-01-01", "2014-01-10",'dv')
+  inactiveSite <- importWaterML1(inactiveSite)
+  expect_that(nrow(inactiveSite) == 0, is_true())
+  
+  inactiveAndActive <- c("07334200","05212700")
+  inactiveAndActive <- constructNWISURL(inactiveAndActive, "00060", "2014-01-01", "2014-01-10",'dv')
+  inactiveAndActive <- importWaterML1(inactiveAndActive)
+  expect_that(length(unique(inactiveAndActive$site_no)) == 1, is_true())
+  
+})
diff --git a/tests/testthat/tests_userFriendly_fxns.R b/tests/testthat/tests_userFriendly_fxns.R
index a545fe85847c11dbe48c8b7b0060d945b45658ef..71034dd23d79d0238e1ad3a7d34ebae353bda0fc 100644
--- a/tests/testthat/tests_userFriendly_fxns.R
+++ b/tests/testthat/tests_userFriendly_fxns.R
@@ -27,18 +27,6 @@ test_that("Unit value data returns correct types", {
   
 })
 
-context("importRDB")
-test_that("CRAN-friendly importRDB test", {
-  filePath <- system.file("extdata", package="dataRetrieval")
-  fileName <- "RDB1Example.txt"
-  fullPath <- file.path(filePath, fileName)
-  importUserRDB <- importRDB1(fullPath)
-  
-  # default is to turn dates to characters
-  expect_is(importUserRDB$datetime, 'character')
-  
-})
-
 context("Peak, rating, meas")
 test_that("peak, rating curves, surface-water measurements", {
   testthat::skip_on_cran()