diff --git a/workspace/02_NHD_navigate.Rmd b/workspace/02_NHD_navigate.Rmd
index fa821eb6a57f38096406054b3d52719dad54d5fb..7be9825e15be3cf6552cd2e522e46c4a8328d042 100644
--- a/workspace/02_NHD_navigate.Rmd
+++ b/workspace/02_NHD_navigate.Rmd
@@ -50,7 +50,8 @@ atts <- readRDS(file.path(data_paths$nhdplus_dir, "nhdplus_flowline_attributes.r
 #  Derive or load HUC12 POIs
 if(needs_layer(temp_gpkg, nav_poi_layer)) {
   
-   nhd <- read_sf(nav_gpkg, nhd_flowline)
+   nhd <- read_sf(nav_gpkg, nhd_flowline) %>%
+     distinct()
    try(nhd <- select(nhd, -c(minNet, WB, struct_POI, struct_Net, POI_ID)), silent = TRUE)
   
   # HUC02 includes some 
@@ -495,12 +496,12 @@ mapview(filter(tmp_POIs, Type_Travel == 1), layer.name = "Travel time break POIs
 if(needs_layer(temp_gpkg, pois_all_layer)) {
 
   unCon_POIs <- filter(st_drop_geometry(filter(nhd, minNet == 1)), COMID %in% tmp_POIs$COMID, AreaSqKM == 0)
-  check <- filter(tmp_POIs, COMID %in% unCon_POIs$COMID)
+  #check <- filter(tmp_POIs, COMID %in% unCon_POIs$COMID)
   
   # If any POIs happened to fall on flowlines w/o catchment
   if (nrow(unCon_POIs) >0){
     # For confluence POIs falling on Flowlines w/o catchments, derive upstream valid flowline,
-    poi_fix <- DS_poiFix(filter(tmp_POIs, nexus == FALSE), filter(nhd, dend == 1))
+    poi_fix <- DS_poiFix(tmp_POIs, filter(nhd, dend == 1))
     new_POIs <- st_compatibalize(poi_fix$new_POIs, tmp_POIs)
     xWalk <- poi_fix$xWalk
 
diff --git a/workspace/05_hyRefactor_flines.Rmd b/workspace/05_hyRefactor_flines.Rmd
index e5cafd63be25974238d54aeaf9460c3083581005..cabf890fd7f4265a66ef1665d02ac9e5f304d5fa 100644
--- a/workspace/05_hyRefactor_flines.Rmd
+++ b/workspace/05_hyRefactor_flines.Rmd
@@ -86,7 +86,7 @@ if(needs_layer(out_refac_gpkg, refactored_layer)) {
   # Select controls whether prepare_nhdplus is used. 
   refactor_nhdplus(nhdplus_flines = dplyr::select(nhdplus_flines, -FTYPE), 
                    split_flines_meters = split_meters, 
-                   split_flines_cores = para_split_flines, 
+                   split_flines_cores = para_reconcile, 
                    collapse_flines_meters = combine_meters,
                    collapse_flines_main_meters = combine_meters,
                    out_refactored = tf, 
diff --git a/workspace/R/NHD_navigate.R b/workspace/R/NHD_navigate.R
index b507326345475f2d44bac81fbbdbc18897b69906..7797a37eee1b9517935133659683d6307a3dfbd8 100644
--- a/workspace/R/NHD_navigate.R
+++ b/workspace/R/NHD_navigate.R
@@ -310,7 +310,7 @@ DS_poiFix <- function(POIs_wgeom, nhd){
     inner_join(select(st_drop_geometry(nhd), COMID, Hydroseq), by = c("DnHydroseq" = "Hydroseq"))
 
   # Find segments with POIs where there is no corresponding catchment that are not terminal
-  unCon_POIs <- filter(nhd, COMID %in% POIs$COMID, AreaSqKM == 0 & Hydroseq != TerminalPa)
+  unCon_POIs <- filter(nhd, COMID %in% POIs$COMID, AreaSqKM == 0)# & Hydroseq != TerminalPa)
 
   poi_fix <- as.data.frame(do.call("rbind", lapply(unCon_POIs$COMID, movePOI_NA_DA, st_drop_geometry(nhd)))) %>%
     inner_join(POIs, by = c("oldPOI" = "COMID")) %>%
@@ -1009,8 +1009,9 @@ WB_event <- function(WBs, nhd_wb, type){
     wb_events <- get_flowline_index(nhd_wb, inlet_pnts) %>%
       inner_join(select(st_drop_geometry(nhd_wb), COMID, WBAREACOMI, LevelPathI), by = "COMID") %>%
       mutate(event_type = type) %>%
-      inner_join(select(inlet_pnts, LevelPathI), by = "LevelPathI") %>%
-      select(-LevelPathI) %>%
+      inner_join(select(inlet_pnts, LevelPathI, WB_COMID = COMID), by = "LevelPathI") %>%
+      mutate(WBAREACOMI = WB_COMID) %>%
+      select(-c(LevelPathI, WB_COMID)) %>%
       st_as_sf()
   }
   return(wb_events)
@@ -1168,7 +1169,9 @@ wbin_POIcreation <- function(nhd, WBs_VPU, data_paths, crs, split_layer){
   #     (outlets should already be defined)
   nhd_WBs <- data.frame()
   if(is.list(WBs_VPU_areaHR)) {
-    nhd_WBs <- filter(nhd, minNet == 1 & COMID %in% WBs_VPU_areaHR$wb_table$comid)
+    nhd_WBs <- filter(nhd, minNet == 1,
+                      COMID %in% WBs_VPU_areaHR$wb_table$comid,
+                      AreaSqKM > 0)
   }
   
   if(nrow(nhd_WBs) > 0){
@@ -1185,9 +1188,20 @@ wbin_POIcreation <- function(nhd, WBs_VPU, data_paths, crs, split_layer){
         st_compatibalize(tmp_POIs) %>%
         mutate(nexus = TRUE)
       
-      tmp_POIs <- data.table::rbindlist(list(tmp_POIs,
-                                             select(wb_inlet_events, COMID, Type_WBIn = WBAREACOMI, nexus)), fill = TRUE) %>%
-        st_as_sf()
+      wb_inlet_POIs <- filter(wb_inlet_events, REACH_meas < 5) %>% 
+        select(COMID, Type_WBIn = WBAREACOMI, nexus)
+      
+      tmp_POIs <- addType(select(wb_inlet_POIs, COMID, Type_WBIn),
+                           tmp_POIs, "WBIn")
+      
+      wb_inlet_events <- filter(wb_inlet_events, !COMID %in% wb_inlet_POIs$COMID)
+      if(nrow(wb_inlet_POIs) != nrow(wb_inlet_events)){
+        
+        tmp_POIs <- data.table::rbindlist(list(tmp_POIs,
+                                               select(wb_inlet_events, COMID, Type_WBIn = WBAREACOMI, nexus) %>%
+                                                 filter(!COMID %in% tmp_POIs$COMID)), fill = TRUE) %>%
+          st_as_sf()
+      }
       
       return(list(POIs = tmp_POIs, events = wb_inlet_events))
     } else {