diff --git a/workspace/R/03_refactor_functions.R b/workspace/R/03_refactor_functions.R
index e4c227d6d7372f2402a914757f85845c4bafb259..ffea5fa2b9008eda9c88bcc649c555b1d0eacb07 100644
--- a/workspace/R/03_refactor_functions.R
+++ b/workspace/R/03_refactor_functions.R
@@ -5,9 +5,26 @@
 #' @param pois_data attributes for POIs
 #' @return list with all events, outlets and comids to exclude
 create_refactor_input <- function(flowline, refactor_event_table, pois, pois_data) {
-
-  events_refactor <- filter(refactor_event_table, hy_id %in% flowline$COMID) %>%
-    rename(COMID = hy_id) %>%
+  
+  # TODO: #157 will fix the need for this filter!
+  
+  events_refactor <- rename(refactor_event_table, COMID = hy_id) |>
+    inner_join(select(sf::st_drop_geometry(flowline), COMID, LENGTHKM, FromMeas, ToMeas), by = "COMID")
+  
+  if(nrow(events_refactor) > 0) {
+  events_refactor$comid_meas <- sapply(seq_len(nrow(events_refactor)), \(i) {
+    hydroloom::rescale_measures(events_refactor$REACH_meas[i], 
+                                events_refactor$FromMeas[i], 
+                                events_refactor$ToMeas[i])
+  })
+  
+  events_refactor$length_up <- events_refactor$LENGTHKM * events_refactor$comid_meas / 100
+  events_refactor$length_dn <- events_refactor$LENGTHKM - events_refactor$length_up
+  
+  events_refactor <- filter(events_refactor, length_dn > 0.15 & length_up > 0.15) |>
+    select(-LENGTHKM, FromMeas, ToMeas, comid_meas, length_up, length_dn)
+  }
+  events_refactor <- events_refactor|>
     distinct(COMID, REACHCODE, REACH_meas, 
              poi_id, geom) %>%
     arrange(poi_id) %>%
diff --git a/workspace/_targets/03_refactor_targets.R b/workspace/_targets/03_refactor_targets.R
index c7c417facdca28f15f3496c4750205a7c3bce9c9..e0012206d56529359b778380afa227d5aaad6f8c 100644
--- a/workspace/_targets/03_refactor_targets.R
+++ b/workspace/_targets/03_refactor_targets.R
@@ -2,7 +2,7 @@ library(targets)
 
 # "dplyr", , "hyfabric", "hydroloom", "nhdplusTools"
 tar_option_set(packages = c("hyRefactor", "dplyr", "sf"),
-               memory = "transient", garbage_collection = TRUE, error = "stop", 
+               memory = "transient", garbage_collection = TRUE, error = "null", 
                storage = "worker", retrieval = "worker", deployment = "main")
 
 library(future)
@@ -34,6 +34,7 @@ list(tar_target(data_paths_file, "cache/data_paths.json", format = "file"),
                 pattern = map(vpu_gpkg), deployment = "worker"),
      tar_target(pois_data, sf::read_sf(vpu_gpkg, poi_data_table),
                 pattern = map(vpu_gpkg), deployment = "worker"),
+
      tar_target(refactor_event_table,  sf::read_sf(vpu_gpkg, event_geometry_table),
                 pattern = map(vpu_gpkg), deployment = "worker"),
      
@@ -46,11 +47,20 @@ list(tar_target(data_paths_file, "cache/data_paths.json", format = "file"),
                                                          rpu_codes, proj_crs),
                 pattern = map(flowline, refactor_input, rpu_codes), 
                 deployment = "worker"),
+     
      tar_target(refactor_lookup, create_refactor_lookup(refactored_network, flowline, 
                                                         refactor_input$events_refactor,
                                                         refactor_input$outlets), 
                 pattern = map(refactored_network, flowline, refactor_input), deployment = "worker"),
      
+     tar_target(out_refactor, {
+       sf::write_sf(refactored_network$refactored, rpu_gpkg, refactored_layer)
+       sf::write_sf(refactored_network$reconciled, rpu_gpkg, reconciled_layer)
+       sf::write_sf(refactor_lookup$outlets, rpu_gpkg, outlets_layer)
+       sf::write_sf(refactor_lookup$lookup, rpu_gpkg, lookup_table_refactor)
+       try(sf::write_sf(refactor_lookup$dups, rpu_gpkg, dup_pois))
+     }, pattern = map(refactored_network, refactor_lookup, rpu_gpkg), deployment = "worker"),
+     
      tar_target(fdr_fac, list(fdr = data_paths$fdr[[paste0("rpu_", rpu_codes)]], 
                               fac = data_paths$fac[[paste0("rpu_", rpu_codes)]]),
                 pattern = rpu_codes, iteration = "list"),