diff --git a/src/main.rs b/src/main.rs
index 1732f2d..5753b1c 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -209,8 +209,8 @@ fn main() {
                     let new_price = layout.price();
                     let price_diff = new_price as i64 - old_price as i64;
                     //eprintln!(" candidate is valid, price diff: {}.", price_diff);
-                    eprintln!("Removed a house (useless), diff {}", price_diff);
-                    eprintln!("Improved price: {}", new_price);
+                    //eprintln!("Removed a house (useless), diff {}", price_diff);
+                    //eprintln!("Improved price: {}", new_price);
                     untried_houses = layout.houses().clone();
                     untried_houses.shuffle(&mut rng);
                     continue;
@@ -228,50 +228,23 @@ fn main() {
 
             new_candidates.sort_by(|a, b| city.get_price(&a).cmp(&city.get_price(&b)));
             if new_candidates.len() == 0 {
-                eprintln!("Did not find candidate");
+                //eprintln!("Did not find candidate");
             } else {
                 for (i, &candidate) in new_candidates.iter().enumerate() {
-
-                    eprint!("Found candidate {}...", i);
+                    //eprint!("Found candidate {}...", i);
 
                     let old_price = layout.price();
                     layout.remove_house(house_index);
+                    layout.add_house(candidate);
 
-                    if layout.is_valid() {
-                        // The candidate is not needed, the house was unnecessary
-                        let new_price = layout.price();
-                        let price_diff = new_price as i64 - old_price as i64;
-                        eprintln!("Removed a house, diff {}", price_diff);
-                        eprintln!("Move rectangle: {}", move_rectangle);
-                        let house_rect = house.range_rectangle();
-                        eprintln!("Printing map in rect around house: {}", house_rect);
-                        for y in house_rect.top..=house_rect.bottom {
-                            for x in house_rect.left..=house_rect.right {
-                                eprint!("{}", layout.cover_count_xy(x, y));
-                            }
-                            eprintln!();
-                        }
-                        eprintln!("Improved price: {}", new_price);
-                        untried_houses = layout.houses().clone();
-                        untried_houses.shuffle(&mut rng);
-                        break;
-                    }
-
-                    let candidate_index = layout.add_house(candidate);
-
-                    if layout.is_valid() {
-                        let new_price = layout.price();
-                        let price_diff = new_price as i64 - old_price as i64;
-                        eprintln!(" candidate is valid, price diff: {}.", price_diff);
-                        eprintln!("Improved price: {}", new_price);
-                        untried_houses = layout.houses().clone();
-                        untried_houses.shuffle(&mut rng);
-                        break;
-                    } else {
-                        eprintln!(" candidate is invalid.");
-                        layout.remove_house(candidate_index);
-                        house_index = layout.add_house(house);
-                    }
+                    assert!(layout.is_valid());
+                    let new_price = layout.price();
+                    let price_diff = new_price as i64 - old_price as i64;
+                    //eprintln!(" candidate is valid, price diff: {}.", price_diff);
+                    //eprintln!("Improved price: {}", new_price);
+                    untried_houses = layout.houses().clone();
+                    untried_houses.shuffle(&mut rng);
+                    break;
                 }
             }
         }
@@ -280,6 +253,7 @@ fn main() {
         if best_price.is_none() || price < best_price.unwrap() {
             best_price = Some(price);
             eprintln!("Finished randomization, price: {}, new best, printing", price);
+            println!("New best!");
             println!("Price {}, seed {}", price, seed);
             print_houses(&layout.houses());
             println!();