The best robot mops in 2022 | CNN Underscored

The best robot mops in 2022 | CNN Underscored

A robot mop — much like a robot vacuum, but armed with a water tank and microfiber cloths or mop pads that wipe your floor in place of or in addition to a dust bin — can be incredibly useful as part of your regular cleaning.

We tested eleven models — three dedicated mops and eight mop-vacuum hybrids — to find the most effective and efficient automated assistants to help you keep your floors clean.

Best robot mop overall

The compact, inexpensive iRobot Braava Jet 240 is simply the best robot mop for the money. While it doesn’t have the smarts of more expensive models and can’t do double duty as a vacuum, its efficient design and simple pattern-based navigation deliver impressive cleaning.

Best robot vacuum and mop combo

The Bissell SpinWave 2-in-1 Robotic Mop and Vacuum is an attractive and capable robot mop-vacuum with good performance, Wi-Fi connectivity and superior mopping ability to the other hybrid models we tested.

Best luxury robot vacuum and mop combo

The Ecovacs Deebot X1 Omni offers the best hands-off cleaning experience and fast and accurate mapping, and won’t mop your carpeting. The cleaning station empties the robot’s dustbin, cleans its mop and refills the water tank.

$199 $179.99 at Amazon

For the price, the iRobot Braava Jet 240 is the best robot mop we tested. For keeping your hard floors neat and tidy without you having to manually mop every day, the iRobot Braava Jet 240 is a handy, affordable tool to have in your cleaning closet.

The iRobot Braava Jet 240 won our hearts with its compact design before we even started mopping. It’s small, lightweight (3 pounds) and has a handle so you can easily carry it from room to room. Its low 3.3-inch profile allows it to get under furniture and into hard-to-reach places, while the squared-off edges mean it can get into corners and along baseboards in a way that round robots just can’t. It even did a good job maneuvering around a toilet base. It also uses a removable rechargeable battery so there’s no need to take up valuable floor space with a charging dock.

Despite its small size, the Braava Jet 240 delivered a big clean. With a vibrating cleaning head (like our favorite affordable hybrid, the Bissell SpinWave) and the ability to use cleaning solution (iRobot’s solution only) in the water tank, the Braava Jet 240 actually mops the floor rather than simply using a cloth to wipe it down with water. The robot uses proprietary cleaning pads (available in both disposable and washable varieties) that, when attached to the bottom of the robot, tell it which cleaning mode to begin. There are three cleaning modes to choose from: dry sweeping, damp sweeping and wet mopping.

Even though the robot isn’t Wi-Fi-connected and lacks smart features (you can, if you like, control the robot via Bluetooth from the iRobot Home app), it uses an efficient cleaning pattern that covers the whole kitchen floor, especially along the baseboards. The Jet 240 impressively maneuvered around a hallway carpet, cleaning the open floor alongside it while avoiding ever going onto the carpet. This is something many of the more expensive, advanced hybrid robot mops could not do. If you need to, you can create a virtual “wall” to confine the Braava Jet 240 to a single space just by pushing two buttons on the robot itself — very convenient indeed.

It did great on tile and hardwood floors, leaving no streaks as it cleaned up cat-litter-dusted paw prints, though on a tile floor we noticed some water accumulation on some of the grout, as the cleaning pads don’t apply enough pressure to reach into crevices. It dried quickly but it’s not clear the grout is getting as clean as the floor is. And while it couldn’t handle dried dirt and tougher stains as well, none of the robot mops excelled in that area.

$399.99 at Amazon

Bissell SpinWave 2-in-1 Robotic Mop and Vacuum

The Bissell SpinWave 2-in-1 Robotic Mop and Vacuum is the only robot mop we tested in this category that uses dual spinning pads, which were far more effective in our testing than the standard flat mop pads employed on the other models. The SpinWave did a great job getting up dirt and splatter spots from my tile kitchen floor and didn’t leave streaks on the hardwood floors. It was the only model that didn’t make me feel like my kitchen had just been lightly Swiffered with a damp cloth.

While all the other robots we tested call for using only plain water in the water tank, the SpinWave can use cleaning products, and Bissell includes a trial size bottle of multi-surface floor cleaner in the box (you can buy other floor- and task-specific formulations through the Bissell app or online, like pet multi-surface with Febreze, wood floor cleaner and one for tough messes and odors).

The SpinWave has sensors to help it automatically detect and avoid carpeting when it’s mopping. This wasn’t perfect — it did end up mopping onto the edge of a dining room carpet — so if you’re using it in an open-floor-plan home with a mix of hardwood or tile surfaces and carpeting, we recommend keeping an eye on it if you’re running it through the whole house (we carried it from kitchen to bathroom for mopping sessions).

You’ll need to swap tanks (the robot comes with a dry tank for vacuuming and a wet tank for mopping) to use the SpinWave as a vacuum and a mop. You can’t do both at the same time as you can with some of the more expensive models (though it does pick up some solid debris while mopping). The circular mop pads attach to the bottom of the water tank and are easily removed for washing.

In vacuum mode, the SpinWave uses a rotating brush roll and dual spinning edge brushes on the bottom to help pick up debris and pet hair in vacuum mode. I found it did a pretty good job on low-pile carpet and hardwood floors. Three suction power levels — low, mid and max — are available.

While the SpinWave may lack the more advanced features found on pricier models, like mapping and the ability to set virtual keep-out zones, The Bissell app gives you access to some connected features like remote controls, a selection of cleaning modes and power levels and scheduled cleaning. You can also set the SpinWave to mop in auto mode, and the robot will run straight rows, or you can use spot mode for concentrated messes and spills.

If mopping the floors is something you do regularly, and you’re looking for a hybrid model that doesn’t cost a fortune, the Bissell SpinWave 2-in-1 Robotic Mop and Vacuum is the right robot for you, delivering one of the best mopping experiences — and certainly the best experience for the money — we found in a robot mop-vac.

$1,399 at Amazon, Ecovacs or Best Buy

Ecovacs Deebot X1 Omni

Truthfully, no one really needs a $1,500 robot house cleaner, and it’s reasonable to ask if you should spend so much on a robot that isn’t able to wash your dishes or bring you a drink. But the Deebot X1 Omni is the best we’ve seen of a new generation of robots. Its advanced AI object detection and laser mapping really work, and it offers the most hands-off user experience I’ve ever had. Combine that with powerful vacuuming and mopping capabilities and an auto-empty docking station that cleans the mop pads and refills the water tank, and you may find yourself coming up with ways to justify spending the money.

Choosing between the Ecovacs Deebot X1 Omni and its close competitor, the Roborock S7 MaxV Ultra, is difficult because they both performed so well in navigating and mapping as well as in our cleaning tests. Both pair their respective companies’ top-end robot with an advanced dock that auto-empties and auto-fills the robot, theoretically giving you a totally hands-off cleaning experience (at least on a daily basis; at longer intervals you’ll have to empty and refill the dock itself).

Based on our testing, the Deebot X1 robot wins out over the Roborock S7 MaxV with a sleeker look, a smaller footprint and — significantly, since this is a major downside of cheaper robot mops — an unerring ability to detect and avoid carpets. In our testing, it got to the very edge of the carpeting and turned around each time. We wanted to give it a cat treat and say, “good robot!”

First and foremost, the Deebot X1 does a great job mopping and vacuuming. Dual spinning mop pads provide better scrubbing capability than the flat cloth style used on other robots so that it cleans much more than surface dirt. It picked up coffee, dried ketchup and other stains better than the other robots I tested.

The Deebot’s mix of detection systems, mapping software and effective automation and remote control really made it stand out. Mapping was a huge pain point on the other robots we tested, often taking two or three attempts to get the house mapped and even then sometimes failing or losing the map entirely. The Deebot X1 Omni, on the other hand, mapped our testing house near-perfectly in 12 minutes. This made it super easy to use the app to set rooms and to create dividers and no-go zones (though it sometimes took a few tries to rename zones and rooms within the Deebot’s app).

Using both a Lidar scanner and an AI-backed camera system, the Deebot excelled in our testing at object avoidance. It never bumped into furniture, even in a dark room, and it made its way around obstacles like pet toys. You can also view the camera’s output as a live feed if you want to check in when you’re not home, and you can even use two-way audio if you might want to communicate with someone remotely. The floor-level perspective is great for recording video of pets (you can steer the robot remotely to get an optimal point of view). You can record 15-second clips on your phone using the app, though there’s no cloud storage (for privacy reasons) and the robot always announces when the camera has been turned on or off.

The Deebot has its own proprietary voice assistant, Yiko (pronounced ee-Koh), which lets you give the robot more specific commands than those available through Amazon Alexa and Google Assistant (which it also supports). You can say “OK Yiko” to stop and start a mopping or vacuuming session, send it to a specific room or ask it to clean a certain area. Yiko worked well in our testing, though it occasionally responded to unrelated conversations, asking me what we wanted it to clean.

The Deebot X1 Omni auto-empty docking station has tanks for both dirty and clean water, as well as one for dust and debris, making for a relatively massive unit, 5 inches taller than the corresponding Roborock S7 MaxV Ultra dock, though the Omni dock’s bags and tanks are larger in capacity, meaning you’ll have to deal with filling and emptying less often. Also, despite its taller profile, the Deebot Omni base station is not as deep as the Roborock Ultra, and the robot docks farther inside the base, taking up less space in the room. Clear tanks make it easy to see how much dirty water has been collected and when it’s time to top off the clean water container. There’s also a hidden container for extra bags and cleaning tools.

The robot always returned to the docking station when mopping was finished, and automatically washed the mopping pads and re-filled the water tank. It also air dries the mop pads, so they don’t smell mildewy. You can set how long you’d like the drier to run but it does make a little humming noise while it’s drying.

The Deebot X1 Omni isn’t perfect. It lacks a dedicated spot-cleaning or edge-cleaning mode (though you can use app or voice controls to have it clean a specific area, which takes a few extra steps). It only used plain water to clean; you can’t use any sort of soap or floor-cleaning solution. And, of course, it’s very expensive. But if you want near-flawless navigation and a virtually hands-off wet and dry cleaning experience, the Deebot X1 Omni delivers.

Is a robot mop worth your money?

If you’re looking to save the effort of regular manual mopping and you have a lot of hard floors, a robot mop can help you keep things clean much in the way a robot vacuum can. Like a robot vacuum, a mopping robot is best thought of as a way to make weekly or monthly cleanings easier rather than as a full-on floor care solution. Like their single-purpose vacuuming cousins, even the most high-tech robot can’t reach every corner of your home and will not replace your full-size canister vacuum or upright vacuum.

And no mopping robot is going to get your floors as clean as a handheld mop or sponge and a little elbow grease. There’s not a whole lot of scrubbing taking place, for one thing (think Swiffer more than mop), and the majority won’t pick up sticky, greasy messes since they are only using water to clean. They do help, but you have to be realistic about your expectations.

Hybrid robot mop-vacuums are worth it if you lack the space for both devices. All of these will work as typical robot vacuum cleaners, picking up pet hair from the floors and low pile carpeting, even under furniture, and will mop your hard floors as well, keeping the house tidy. All of the models we tested except for the most expensive occasionally mopped our carpets (if we wanted to wet-clean those, we’d rather have a carpet cleaner), so they require supervision if this is a concern, and you might want to plan on carrying them to locations where they are needed.

Now that the next generation of home cleaning robots has entered the field, we wouldn’t recommend spending more unless you can really afford one of the next-generation models, with more complete base stations and more elaborate automation, mapping and location features.

Mapping technology is a pain point for many of the last-generation high-end robots (like the Ecovacs Deebot T8+ and Roborock S7+) and you can’t use the high-end features you’re paying for until the mapping is done. The good news is that the next-gen robots are superb at mapping, so if you want all those features and obstacle avoidance as well as the ability to avoid carpeting while mopping, splurge on the newer Ecovacs Deebot Omni X1 or Roborock S7 MaxV Ultra. Otherwise, stick with the far less expensive iRobot Braava Jet 240, or if you want something that also vacuums, get the Bissell SpinWave.

These more-advanced hybrid mop vacuums, like the Ecovacs Deebot X1 and Roborock S7 MaxV Ultra, really do perform as advertised, offering hands-off autonomous house cleaning once you set them up (though as with the cheaper models, you’ll still have to take care of periodic deep cleaning the old-fashioned way). But if more hands-off cleaning is what you’re looking for, these might be worth the splurge. You just need to figure out which of their features are more important to you.

If you’re interested in the most effective robot mop — say you have more hard floors than carpets and don’t mind attaching the mopping pads when you want to mop — the Ecovacs Deebot Omni X1 has more useful features, like the ability to self-dry the mopping pads and an on-board voice assistant for robot control.

If you have lots of low-pile carpeting and want a robot that’s a good vacuum and can take care of a smaller amount of mopping on a single pass through your house without having to swap out tools, get the Roborock S7 MaxV Ultra, which can lift its mop while it goes over the carpets.

How we tested

We looked at 11 models with a wide variety of features and price points and at two more full-featured next-generation units, which claim to do it all: mop, vacuum, empty the dust bin, refill the water tank and wash the mop for you.

With each robot, we looked at how well it mopped and vacuumed, and how easily it transitioned between the two. Wi-Fi-connected robots were also judged on the effectiveness and ease of use of their apps, how well they did at mapping the house and how easy it was to define and use virtual boundaries.

Each model was given multiple runs across mostly low-pile carpeting and hardwood floors in an approximately 1,500-square-foot home with two furry cats. We looked at how well they mopped the floor and whether they were able to detect and avoid carpeting.

Other robot mop-vacuums we tested

iRobot Braava Jet m6

$449.99 $349 at Amazon

iRobot’s more advanced Braava Jet m6 adds Wi-Fi and a lot of smart features that might make sense if you also have an advanced Roomba vacuum, but from a mopping perspective it performs identically to the cheaper Braava Jet 240.

The Braava Jet m6 has a larger water tank so you don’t have to fill it as often and the see-through tank means you always know when it needs to be refilled, but we recommend saving some money and buying the cheaper Braava Jet 240 unless you already have (or plan to buy) an I-series, S-series or 900-series Roomba and plan to use the Imprint Link feature to coordinate vacuuming and mopping between the two devices.

More advanced smarts let the m6 map your house, understand keep-out zones, respond to voice commands and navigate obstacles and stairs. It will dry sweep or wet mop floors, like the 240, and you can adjust how much water or cleaning solution it sprays as it goes. It cleans the room in efficient, neat rows and covers every inch of the floor, including edges without ever going on carpeting. It can also target specific areas within a room and head back to the dock to recharge when necessary.

Roborock S7 MaxV Ultra

$859.99 at Amazon and Roborock for S7 MaxV robot only

The Roborock S7 MaxV Ultra (which combines the Roborock S7 MaxV robot vacuum and the Ultra self-cleaning docking station) is a next-generation home cleaning system that competes directly with (and cleans just as well as) the Ecovacs Deebot X1 Omni. Like that system, once you set up the S7 MaxV Ultra, you shouldn’t have to deal with it until you need to fill or change out tanks in the docking station, meaning you can let it work on its own for weeks at a time. The Ultra dock is currently out of stock, but should be available in May; if you can’t wait, the S7 MaxV Plus (including Auto-Empty Dock) is available at Amazon and Roborock for $1,159.99.

The Roborock has many of the same features as the Deebot X1, such as advanced, AI-based object and obstacle detection using a combination of Lidar and optical cameras; a livestreaming camera that lets the robot do double duty as a mobile security camera and fast and accurate home mapping. It is a big jump in technology and features from the Roborock S7+.

While on the Deebot X1 you need to swap out tools when you want to mop, you can leave the mopping pads on the S7 MaxV and it can transition from vacuuming mode to mop mode automatically during a single run, so long as your carpet isn’t too deep. This feature (called “VibraRise”) was introduced on the last-generation high-end Roborock units like the S7+ and it lifts the mop brushes by 5mm when it senses low-pile carpeting so it doesn’t mop the carpet as it vacuums. If the carpet is taller than that and the mop heads are still attached, the S7 MaxV simply avoids it, much as the Deebot X1 would during a mopping run. The mop pad is also lifted off the floor as the robot charges so it air dries (the Ultra dock doesn’t have a forced-air dry function like the Deebot X1’s Omni dock).

In practice, the Roborock S7 MaxV Ultra system was reasonably effective, though neither the Roborock or the Ecovacs can really clean every floor surface in your whole house in a single pass unless you have the specific mix of low-pile carpet and hard floors that the Roborock is designed for. The S7 MaxV Ultra did a really nice job on hardwood floors, mopping the whole width of the pad and leaving no streaks, something the less-expensive robots had difficulty with.

The Ultra Empty Wash Fill Dock is very large and bulky, made of black plastic, and leaves the three tanks exposed rather than hidden away as on the Deebot Omni dock, and it’s just not as pleasing a design aesthetically. The water tanks are not see-through either, so to check the water levels, you need to pull them out and open them up to see in. The power cord in the back is very thick and long and there’s not enough space behind the dock to coil it, making it difficult to push it up against a wall. You’ll need a lot of clearance for this massive cleaning system, even given that it has less capacity than the Ecovacs system.

For now, despite the very useful VibraRise system, for most households we’d give the edge in next-generation robot mop-vacuuming hybrid technology to the Ecovacs Deebot X1 Omni

Roborock S7+

$949.98 at Amazon and Roborock

The Roborock S7+, the company’s previous top-of-the-line unit, doesn’t have the advanced AI object-avoidance capabilities or security camera functions of the new S7Max Ultra, but it’s about as good as previous-generation models get.

The S7+ vacuums well, with increased suction as it detects carpeting. The robot uses “Sonic Mopping,” a function that vibrates the mopping pad very quickly (the company claims 3,000 vibrations per minute) to break up dirt. In our testing this wasn’t able to handle dried dirt or greasy spills, but it does have a useful “high intensity mopping” mode for better spot cleaning.

As the S7+ passed over carpeting the indicator light on the robot changed from blue, for mopping mode, to white, for vacuum mode, though our carpets did get ever-so-slightly damp. This wasn’t out of line with our expectations since the function is only meant to work with very low-pile carpets. The auto-empty dock adds simplicity and convenience to using the robot. It automatically empties the robot’s dust bin when it returns to the charging station.

Though it uses Lidar navigation to efficiently map the house, it had trouble getting started. Initially, it wanted to go through the same room a few times while never making it to the bedroom, and if it needed to go back to recharge, it started the mapping process over. It did finally complete a map, and we were able to use the app to set no-mop zones and cleaning schedules, as well as adjust suction power of the vacuum and the amount of water flow when mopping. Like with other robots, you can create invisible walls and see the route the robot is taking.

The S7+ is available with a slightly simpler auto-empty dock, which the company claims you shouldn’t have to manually empty for up to 8 weeks (depending, of course. on how dirty your house gets, how many pets you have and how much they shed, and so forth).

The Roborock S7+ is a really good, well-designed hybrid robot with unique features but the $949 price tag is too high compared to the equally capable Ecovacs Deebot T8+ which sells for $200 less. You can buy just the S7 robot for $649 if you can live without the self-emptying feature.

Ecovacs Deebot Ozmo T8+

$749.99 $529.99 at Best Buy

Like the Roborock S7+, the Ecovacs Deebot T8+ is a capable hybrid robot mop-vac with an auto-empty station. It can vacuum and mop at the same time using separate dry and wet tanks. You can run it with or without the mop attachment on.

Ecovacs says the T8 can automatically detect and avoid carpeting when the mopping pad is on, but it didn’t always detect them in my testing. Since it can’t raise its mop like the Roborock can, it wound up mopping parts of the carpets before we pulled it away.

It automatically boosts the suction power when it’s vacuuming carpeting and does a good job picking up pet hair. It’s quiet and handles door sills better than other models and does a good job maneuvering around furniture.

The Auto-Empty Station is smaller than the Roborock’s, though it will still hold about 8 weeks worth of debris, depending on usage. It worked well, but we did have one instance of cat hair getting stuck in the suction tube and we had to clean it out by hand.

Like with other connected robots, once you map your home, you can set scheduled cleanings, create boundaries and virtual walls and control the water flow in each room while mopping. And just like other connected robots, mapping was an exercise in frustration. It took multiple tries, going over the same rooms and recharging over and over until it finally completed.

iLife A11

$399.99 at Amazon

The iLife A11 does only an average job cleaning. It did well picking up cat hair but left some cat litter on the bathroom floor. It also left some hair on low-pile carpeting. This won’t replace your standalone vacuum, but for a scheduled quick run through the house in between deeper cleanings, this will get the job done.

As with most last-generation robots, the A11 can map your home, and be controlled via an app or by a hardware remote. Also as is usual, the mapping process can be frustrating but once you complete it, it will store up to three maps in memory. You can set zones, so the robot mops in one zone and only vacuums in another. The A11 also has Lidar-based smart navigation to avoid objects in its path.

Its two-in-one dustbin holds both water and debris so it can vacuum and mop in a single pass. The two-in-one dustbin can be replaced with a larger, dedicated dust bin if you just want to use the A11 as a vacuum.

The app lets you adjust power and mode while vacuuming and mopping. You can increase the suction of the vacuum from eco to standard to turbo and adjust the amount of water that is dispensed in mopping mode. You can do the same on the remote control, along with switching between edge mode and spot clean.

One warning: it doesn’t come with a protective base to keep things dry under the robot while docked, so you’ll want to take off the mopping cloth after each use if your charging base is on a wood floor.

iLife Shinebot W450

$349.99 at Amazon

The iLife Shinebot W450 does a good job mopping floors, but it didn’t perform as well as the similar iRobot Braava Jet m6 or cheaper and simpler Braava Jet 240. It’s a mopping robot with smart navigation and an app that lets you adjust cleaning modes and target the area you want cleaned, but at 11 inches round and 4.7 inches high, it’s not going to get under furniture, near baseboards, under cabinets and around toilets.

In addition, for a robot that’s supposed to simplify your life, it requires way too much work to use it. You’ll have to open the robot to access and fill the tank, and it’s difficult to put back together (we managed to spill a tank of water on the floor). Once charged, in order to start a cleaning run, you need to manually lift it off its charging base and place it on the floor you want cleaned. It has a handle to carry and move it, but it can’t start itself or return to the dock to recharge on its own.

It’s really too bad, as once the W450 gets to cleaning it does a good job. It has two tanks, one to collect dirty water and one for clean water so it’s not just pushing dirt around. First it sprays (water and cleaning fluid, if you’re using it) then it scrubs with a roller brush, sucks away the dirty water and wipes off any residue water, so your floors dry really quickly. Of course, then you have to empty and wash the dirty water tank when it’s done.

iLife V8s

$249.99 $219.99 at Amazon

The V8s is an older model in the iLife product line, and has dropped in price to where it no longer feels overpriced for what it can and can’t do. That said, while it is a capable mop, as a hybrid it has trouble navigating around carpet, and you are better served confining it to your kitchen or other hard-floored rooms, or sticking with a dedicated mop robot. As a vacuum, it’s actually a good hard-floor pet hair option because of its suction tube design, but the lack of roller brushes means it can’t handle low-pile carpet, cutting into its potential versatility.

In our open-plan test home, the V8s did a good job mopping the kitchen floor, but unfortunately, as it went from kitchen to dining room to living room (transitioning from hardwood floors to low-pile carpeting), it couldn’t detect the low-pile carpeting and went right over it, squirting water along the way.

This iLife robot uses a suction tube, much like a traditional vacuum cleaner, rather than the roller or bristle brushes used on other robots. This lets it do a better job than some of the other models we tested at cleaning up pet hair, as the debris is sucked up right into the bin without getting tangled up in a roller brush. It does great on hardwood and tile floors, but the downside of having no roller brush is that it doesn’t do a very thorough job on low pile carpeting.

It can’t vacuum and mop in a single pass, so you have to swap out the dustbin and water tank each time you change modes. It also doesn’t come with a floor mat so if you leave it on the charging base with the water tank attached you might end up with water stains on your floor. We recommend putting in the dust tank and letting the water tank empty and dry between uses.

Eufy RoboVac X8 Hybrid

$649.95 at Amazon

The Eufy RoboVac X8 Hybrid is a Wi-Fi-connected robot mop-vacuum hybrid with high-end features like smart navigation and in-app mapping and scheduling, but it only does an average job vacuuming and mopping. To make space for the water tank, the dust bin is slightly smaller than in the standalone X8 vacuum we reviewed in our test of the best robot vacuums, and the mop functionality is lacking. There are no mop-specific controls so you can’t adjust how much water is put down for a specific task.

Mapping was frustrating and inconsistent. While you can create no-go zones to keep the mop off your carpeting, these didn’t persist in memory during our testing, and were ignored as the robot ran.

In its favor, the Eufy X8 Hybrid lets you mop and vacuum in a single pass, which certainly makes it more efficient. Some of the other units require you to swap out the dust bin and water tank each time you change from vacuum to mop, and it includes a translucent mat to protect your floor if you keep the mop cloth on while charging the device.

#robot #mops #CNN #Underscored

Leave a Comment

Your email address will not be published.