• Skip to main content
  • Skip to primary sidebar
  • About
    • Authors
      • About Mark Draughn
      • About Ken Gibson
      • About Gary Olson
      • About Joel Rosenberg
    • Terms and Conditions
    • Disclosures

Windypundit

Classical liberalism, criminal laws, the war on drugs, economics, free speech, technology, photography, sex work, cats, and whatever else comes to mind.

The Danish mask study and the evidence for community masking

December 10, 2020 By Mark Draughn Leave a Comment

You may have heard about a Danish study that supposedly showed that wearing a mask doesn’t protect you against Covid-19. Since I just wrote a whole series of posts on how to protect yourself and others with masks, I want to address that study and how it affects my thinking about masking. (Short answer: It doesn’t change anything.)

Before doing that, I need to set some context for the study, which means I need to discuss some of the other research on mask wearing. At the time I wrote my series on masking, I relied on general public health advice, one or two influenza studies, and on a recent CDC post on community masking which summarized a bunch of research that I’m going to discuss in more detail here.

Note: This is not a thorough literature review. In most cases I only skimmed the papers to learn what they had to say about relevant masking issues. Despite that, I should warn you that, even by my standards, this is going to be tedious slog. If you just want to know about the Danish study, feel free to skip to the end.

Overview

The term community masking refers to the practice of a general group of people — a town, a country, an office building — wearing masks to prevent the spread of a disease. This is in contrast to masking in a healthcare setting, which us usually intended to reduce the risk of disease transmission in very specific situations, such as a surgical procedure. Masks have a long history of use in healthcare settings, and are widely considered to be effective there. But the effectiveness of general community masking is less well established.

Respiratory infections like Covid-19 can be carried through the air from person to person by two different mechanisms:

  • Droplets: Blobs of liquid expelled as people exhale — or talk or cough or sneeze — which are large enough to settle to the ground within a few seconds.
  • Aerosols: Tiny bits of particulate matter that are small enough that they can float in the air for minutes or hours.

(Non-airborne infection can also occur through direct contact or — rarely for Covid-19 — contact with contaminated surfaces.)

Broadly speaking, mask materials may capture particulates from the air using two important mechanisms:

  • Sieve effect: The fibers of the mask have gaps between them, but any particle too big to fit through the gap will be trapped by the mask. Most materials provide some of sieve filtration.
  • Stickyness: Particles that fit through the gaps between fibers can end up sticking to a fibers through one of several different mechanisms (e.g. electrostatic cling). Only certain special materials provide this kind of filtration.

Wearing masks can serve two roles in infection control:

  • Source control: Prevents you from infecting others. If you are infected, covering your mouth and nose with a mask may reduce the amount of exhaled infectious droplets and aerosols you release into the environment, which could infect others.
  • Protection: Keeps you from being infected. By covering your mouth and nose, a mask may reduce the amount of infectious droplets and aerosols you inhale, which could keep you from being infected.

For my purposes, we can break the CDC’s list of studies of community masking into two broad categories:

  • Lab experiments, which test the mechanisms by which masks are presumed to control infections, but don’t actually show that community masking works.
  • Observational studies, which look at events in the real world and try to detect if masking is helping.

Laboratory experiments can test all types of infectious materials, filtering mechanisms, and roles. Observational studies of community masking tend to combine the effects of mechanisms, and usually roles as well, because broad population studies are better for figuring out if masking is working than figuring out why.

Lab experiments are highly controlled to eliminate complications and uncertainties. Healthcare settings are more complicated, but the participants are professionals and are usually subject to direction from management or authorities. Out in the general community, however, people won’t always do what you want them to do, which can make the results a lot harder to interpret. Things that work well in the lab may work poorly in real life.

This doesn’t mean lab experiments are unimportant. Most real-world studies are observational, meaning the experimenters gather data about variables in the the real world and try to use statistics to establish that changes in some variables (mask/no mask) cause changes in other variables (infected/not infected). The problem is that statistics alone cannot establish this — correlation does not prove causation — but lab experiments can identify possible causal mechanisms, which can be used to predict effects which observation can then confirm. This doesn’t prove that changes in some variables cause changes in others, but it does make it more plausible, especially in the absence of other explanations.

Finally, while compliance is important to epidemiologists, it need not be important to us. An observational study on masking may find the effect is small because most participants don’t wear masks when they’re supposed to. But that should have no bearing on your decision of whether to wear a mask. That only depends on if it works.

Lab Experiments

Lab experiments test masking technology under highly controlled conditions.

Mask Materials

This group of experiments examine the effectiveness of various mask materials at filtering airborne particulates and/or droplets.

Simple respiratory protection–evaluation of the filtration performance of cloth masks and common fabric materials against 20-1000 nm size particles

In this 2010 study, conducted after the bird flu and H1N1 pandemics, researchers used microscopic salt particles of various sizes to test 3 variations of each of several materials, including cloth masks, T-shirts, sweatshirts, towels, and scarves. The cloth masks reduced penetration anywhere between 3% and 60%, depending on the material and particle size. Thicker materials generally did better. Smaller particles penetrated better in most materials. This indicates that most filtration is like a sieve, with no other capture method contributing.

Aerosol Filtration Efficiency of Common Fabrics Used in Respiratory Cloth Masks

This 2020 study is similar to the previous one, using different fabrics and particle sizes. Fabrics with tight weaves such as 600 thread/inch cotton produced high levels of filtration by sieve effects. On the other hand, materials such as silk, chiffon, and flannel provided some electrostatic filtering as well. For example, 80 thread/inch quilter’s cotton filtered only 9% to 14% of particles, but a combination of layers of tightly-woven cotton and chiffon filtered at least 97% of particles.

Measurement of filtration efficiencies of healthcare and consumer materials using modified respirator fit tester setup

Yet another salt test of filtration efficiency, this time focusing on do-it-yourself masks. This was also a demonstration of how to test masks using respirator fit testing equipment that is readily available in most hospitals. (It’s a bit of a mad scientist arrangement — for example, they can’t get readings directly from the particle counter software, so they use optical character recognition to read it into MATLAB.) They found filtering efficiencies of consumer-grade materials between 35% (pillow case) and 50% (HVAC filter) although cotton and coffee filters did much worse, and vacuum cleaner bags scored 82%.

Community Masks During the SARS-CoV-2 Pandemic: Filtration Efficacy and Air Resistance

This was a study of a variety of masks obtained from manufactures in and around Germany in 2020. They found a range of filtration efficiencies, from 34.9% for a Hermko 9920 to 99.8 for an Eterna FFP (whatever those are).

Household Materials Selection for Homemade Cloth Face Coverings and Their Filtration Efficiency Enhancement with Triboelectric Charging

Another study using salt particles on common materials — cotton, polyester, silk, nylon, paper towels, etc. — with measurement of pressure drop across the air stream to compute a common quality measurement of particulate filtration efficiency weighted for breathability.

The study also tests the idea of rubbing the mask material with a latex glove to give it a static charge. That improved filtration efficiency for every material except cotton, which got worse. The best filtration was from a charged spunbond polypropylene (which doesn’t sound like a household material, but is apparently used in things like mattress covers and hygiene products) which filtered 10% to 20% of particulates per layer with relatively good breathability.

Filtration performances of non-medical materials as candidates for manufacturing facemasks and respirators

This test used nebulized salt water as a source of aerosolized droplets to test 43 different materials. High thread count fabrics did OK, and fibrous materials (such as HVAC filters) did well collecting aerosols. The recommend manufacturing well-fitting masks from a mix of fibrous and fabric materials.

Viral Filtration Efficiency of Fabric Masks Compared with Surgical and N95 Masks

Unlike other mask efficiency test, this one tested against a live test microorganism. The experiment followed ASTM testing guidelines, except that it replaced the standard test microorganism with a different one that more closely resembles the size of the SARS-CoV-2 (Covid-19) virus. The test setup looks like this:

ASTM F2101-14 mask testing rig

Most fabrics had at last a 50% filtering efficiency, the cotton mask with a vacuum cleaner bag had 98.8% efficiency, and N95 and surgical masks scored over 99%.

Source Control

These experiments studied the effectiveness of masks under conditions that asses their use as source control.

Ability of fabric face mask materials to filter ultrafine particles at coughing velocity

This is another particle filtration efficiency test, but at high velocities to simulate coughing. As usual, all materials blocked some particles, with HEPA vacuum bags blocking more than even N95 masks. The best filtration was provided when combining fine cotton with non-woven materials.

Performance of fabrics for home-made masks against the spread of COVID-19 through droplets: A quantitative mechanistic study

This study examined the ability of various materials to absorb droplets. Droplets are bigger than aerosol particles, but they are also flexible enough to squeeze through pores in the filter. Researchers squirted mists of droplets at various fabrics and measured how much got through. (The experimental setup is surprisingly complicated and involves nanoparticles.)

Procedure masks did very well, as did polyester dish cloths and used silk shirts. Used cotton shirts, polyester bed sheets, and blended fabric did well also. Double or triple layers of even poor-performing fabrics also did well, and offered much better breathability than a procedure mask.

Wearing Masks

Masks are meant to be worn, which brings up issues of whether they fit the human face well enough to avoid letting in unfiltered air. These experiments attempted to study the effects of wearing masks on real and artificial heads.

Testing of Commercial Masks and Respirators and Cotton Mask Insert Materials using SARS-CoV-2 Virion-Sized Particulates: Comparison of Ideal Aerosol Filtration Efficiency versus Fitted Filtration Efficiency

This study used silica particles, and focused on the interplay between the filtering efficiency of the materials and the fit of the mask on a head-shaped object with air sampling ports. In a sealed test cartridge, the 600 thread count cotton fabric removed only 17.4% of small particles. Coffee filters and shop towels didn’t do much better. A Filtrete 1500 HVAC filter jumped up to 70%, KN-95 material and a 3M N95 mask all did very well. When fitted to a head-shaped form as a mask, however, all materials did poorly — between 15% and 40%. This was attributed to leaks around the nose and jawline.

Professional and home-made face masks reduce exposure to respiratory infections among the general population

This 2008 study compared 3 different masks worn by volunteers for a short 15-minute task. Particulate counts were taken inside and outside the mask. The teacloth masks filtered 55% to 69% of particulates, the surgical masks filtered 76% to 81%, and the FFP2 mask (European version of N95 mask) filtered 98% to 99%. A 3-hour experiment produced similar numbers, with teacloth masks filtering 58% to 70% of particulates, the surgical masks filtered 72% to 85%, and the FFP2 mask filtered about 99%. Tests with children varied a bit depending on the length of the experiment and the type of mask.

Effectiveness of Face Masks in Preventing Airborne Transmission of SARS-CoV-2

This experiment was done with live SARS-CoV-2 virus inside a test chamber inside a biosafety level 3 facility. The researchers constructed a physical simulation of airborne transmission of SARS-COV-2 in both droplet and aerosol form.

You really have to see the setup:

SARS-CoV-2 airborne transmission simulation

They used a nebulizer to create a mist of virus-containing droplets which were expelled out the mouth of a mannequin head. Another mannequin head was attached to a ventilator to simulate normal human breathing. Then they put masks on the heads and tested how the virus spread.

All masks were more effective when worn by the “spreader” mannequin than the “breathing” mannequin, but even when the “breathing” mannequin wore the masks, a well-fit N95 masks blocked 80% to 90% of the virus, surgical masks blocked about 50%, and even cotton masks blocked 20-40% of the virus. All masks therefore had at least some protective effect.

Real-World Studies

Having established that well-fitting masks of appropriate materials can filter exhaled infectious droplets and particles, and that they can protect the wearer from inhaling infectious droplets and particles, the next step is to see if any of these mechanisms work in the real world. All of these are observational studies.

Mitigation

This group of studies examine the effects of masking from the point of reducing infections in the population, but they don’t distinguish between source control and direct protection of the wearer.

Absence of Apparent Transmission of SARS-CoV-2 from Two Stylists After Exposure at a Hair Salon with a Universal Face Covering Policy – Springfield, Missouri, May 2020

“An investigation of a high-exposure event, in which 2 symptomatically ill hair stylists interacted for an average of 15 minutes with each of 139 clients during an 8-day period, found that none of the 67 clients who subsequently consented to an interview and testing developed infection. The stylists and all clients universally wore masks in the salon as required by local ordinance and company policy at the time.” [Summary from CDC.]

Reduction of secondary transmission of SARS-CoV-2 in households by face mask use, disinfection and social distancing: a cohort study in Beijing, China

“In a study of 124 Beijing households with laboratory-confirmed cases of SARS-CoV-2 infection, mask use by the index patient and family contacts before the index patient developed symptoms reduced secondary transmission within the households by 79%.” [Summary from CDC.]

In-flight Transmission of SARS-CoV-2: a review of the attack rates and available data on the efficacy of face masks

“Investigations involving infected passengers aboard flights longer than 10 hours strongly suggest that masking prevented in-flight transmissions, as demonstrated by the absence of infection developing in other passengers and crew in the 14 days following exposure.” [Summary from CDC.]

Association Between Universal Masking in a Health Care System and SARS-CoV-2 Positivity Among Health Care Workers

This is a study of 9850 workers in the Mass General Brigham healthcare system during a period in early 2020 in which the masking policy changed.to include universal masking of healthcare workers and then universal masking of patients. The study looked at the change in the slope of a weighted curve of test results to detect the effect, if any, of masking. Masking appears to have produced a decline in test positivity despite an increase in case numbers in the surrounding community.

Face Masks Considerably Reduce COVID-19 Cases in Germany: A Synthetic Control Method Approach

This study examined the effects of masking mandates in Germany, taking advantage of the fact that regions enacted mandates at different times to untangle some confounding factors. The study found that masking reduced the daily growth rate about 40%.

Trends in COVID-19 Incidence After Implementation of Mitigation Measures – Arizona, January 22-August 7, 2020

This report studied a combination of mitigation measures — including reducing the size and number of public events, reduced capacity in restaurants, curbside pickup, voluntarily movement limits, masking, and closing bars, gyms, and movie theaters — that appear to have suppressed the COVID-19 epidemic in Arizona.

Community Use Of Face Masks And COVID-19: Evidence From A Natural Experiment Of State Mandates In The US

This is similar to the German study, but using data from masking mandates enacted at different times in different locations in the U.S. The study found declining daily case rates of 2% over the three weeks following the mandate (similar to the German study).

Face Masks, Public Policies and Slowing the Spread of COVID-19: Evidence from Canada

This is the Canadian version of the U.S. and German studies, and it finds masks produced a 25% reduction in weekly growth.

Causal Impact of Masks, Policies, Behavior on Early Covid-19 Pandemic in the U.S.

This study from September examines a number of mitigations using policy data from the CUSP dataset as the independent variable and COVID data from the usual sources to study the effects of 6 mitigation methods: Stay-at-home orders, closed nonessential businesses, closed schools, closed restaurants, closed movie theaters, and face mask mandates for employees in public facing businesses. Because they have timing data for each type of mitigation in each state, they can statistically untangle the effects of the mitigation measures. The researchers estimated that face mask mandates for employees reduced the growth rate of infections by 9% to 15%.

Association of country-wide coronavirus mortality with demographics, testing, lockdowns, and public wearing of masks

This was similar in concept to the previous study, but for countries instead of states for the first 4 months of 2020. The researchers found that countries where people wore masks (either because of mandates or culture), Covid-19 mortality rates rose at 16% per week, compared to 62% per week for non-masking countries.

Face Masks and GDP

This is an analysis from June of 2020 by researchers at Goldman Sachs on the effectiveness of mask mandates at increasing community masking, the effectiveness of masks at reducing virus transmission, and the economic impact of using masking as an alternative to lockdowns. Using data from 20 states and D.C., they estimate that a nationwide mask mandate would increase mask usage by 15%, and produce a 25% reduction in infection growth rate. Replacing lockdown policies with a risk-equivalent masking policy would allow the country to reduce lockdowns by enough to allow GDP to increase by almost 5%.

Physical distancing, face masks, and eye protection to prevent person-to-person transmission of SARS-CoV-2 and COVID-19: a systematic review and meta-analysis

Review and meta-analysis of 172 observational studies for the effects of social distancing and masking in healthcare and community settings found a large reduction of risk of infection if people wore masks.

Protection

A few observational studies focused on whether wearing masks protected the wearer.

Case-Control Study of Use of Personal Protective Measures and Risk for SARS-CoV 2 Infection, Thailand

“A retrospective case-control study from Thailand documented that, among more than 1,000 persons interviewed as part of contact tracing investigations, those who reported having always worn a mask during high-risk exposures experienced a greater than 70% reduced risk of acquiring infection compared with persons who did not wear masks under these circumstances.” [Summary from CDC.]

SARS-CoV-2 Infections and Serologic Responses from a Sample of U.S. Navy Service Members – USS Theodore Roosevelt, April 2020

“A study of an outbreak aboard the USS Theodore Roosevelt, an environment notable for congregate living quarters and close working environments, found that use of face coverings on-board was associated with a 70% reduced risk.” [Summary from CDC.]

Randomized Trials

All of the real-world studies I mentioned so far were observational studies, which look at differences in the real world and try to explain them. One of these weaknesses of these studies is the problem of confounding variables. That is, sometimes you think you’ve detected an effect based on the variable you’re studying, but the effect is actually based on a different variable that has some relation ship to what you’re studying.

If you know what some of the confounding variable are, you can use statistical procedures to untangle the effects of the different mitigations, including the one you want to study. When you do this, you are said to be controlling for the other variables. The problem is that this won’t work for variables you can’t get data for. And it seriously won’t work for variables you haven’t even thought of.

A better way to control for confounding variables is to use a randomized trial: You randomly choose some people to receive the mitigation and others to be in the “control” group. Because your selections are random, they won’t be correlated to any of the natural confounding variables (including variables you haven’t even thought of) so there is less chance of misidentifying the cause of observed effects. Even if there are variables you haven’t controlled for, they will be “randomized away.”

This switch from passive observation to active intervention can raise ethical issues. For example, you probably wouldn’t get IRB approval for an experiment in which you randomly instruct a control group of people to go unmasked in the middle of a deadly pandemic. This limits the methodology of possible experiments.

Face mask use and control of respiratory virus transmission in households

This was a 2009 study conducted with 143 households in Australia in which a child member of the household had a respiratory infection such as the flu or a cold. The households were randomly assigned to three groups:

  • 47 received P2 respirators (similar to N95) to be worn at all times around the sick child.
  • 46 received surgical masks to be worn at all times around the sick child.
  • 50 were in the control group and received nothing.

And as it turns out, at least half the participants with masks decided not to wear them. But for those who did, the daily risk of becoming infected was reduced by 60% to 80% .

There’s one other randomized trial…

The Danish Study

Yes, I’m finally ready to talk about the Danish study, which is this:

Effectiveness of Adding a Mask Recommendation to Other Public Health Measures to Prevent SARS-CoV-2 Infection in Danish Mask Wearers

This is a randomized trial designed to determine if the observed effectiveness of community masking in the Covid-19 epidemic is due to source control effects or personal protection effects. In other words, does wearing a mask protect you?

In order to avoid the ethical danger zone of telling someone not to wear a mask, this experiment recruited 6000 people who already did not wear masks while working outside the home for at least 3 hours per day (which was common at the time). They were randomly divided into two groups: The mask group and the control group. Both groups were encouraged to use social distancing, but the mask group was given additional instructions to wear masks when outside the home and given 50 disposable procedure masks and instructions on how to use them. (This approach was likely chosen to meet ethics requirements by ensuring that neither group was made worse off by participation in the experiment.)

Results

The experiment ended after 30 days with a fairly weak result. The study found that masks produced an 18% reduction in infections, but with a significance of p=0.33, meaning that even if masking did nothing, there’s still a 1 in 3 chance this experiment would have shown an 18% effect. That’s so high as to be meaningless. As a rule of thumb, we generally want p to be less than 0.05. But the most that the Danish study can say with a significance of p=0.05 is that the effect of masking falls somewhere between a 46% decrease in infections and a 23% increase in infections, which is not very useful.

You many have noticed that, as described, the experiment did not technically study the effects of wearing masks. Rather, it studied the effects of telling someone to wear a mask and giving them free masks, which is not the same thing. If some of the people in the mask group didn’t wear masks, it would dilute the ability of the experiment to measure the true effect of wearing masks, so they might be more effective than they appeared.

Basically, this experiment neither proved that masks will protect the wearer nor ruled it out. The experiment lacked the power to answer the question.

Conclusion

The Danish study was conducted in a time and place where few people wore masks, meaning that almost no source control was possible. Thus this study does not in any way invalidate the concept of wearing masks to protect others, which has always been a key motivation in Covid-19 community masking efforts.

In fact, the real-world observational studies I listed above all found that community masking led to a meaningful reduction of infections. This seems like a pretty firm basis for concluding that community masking helps reduce the spread of Covid-19.

As for whether wearing a mask will protect you, as I said in my original post about the types of masks, the evidence there is not as strong. There’s certainly a lot of evidence that it ought to work. Multiple studies show that a variety of masking materials are capable of filtering droplets and/or aerosols with properties similar to those that carry Covid-19 virions (one study even showed this with actual live SARS-CoV-2 virus). Several studies also show that masks can be fit to a human face well enough to filter inhaled air, which should provide protection.

In addition, we have three studies that show a protective effect in the real world:

  • The Australian at-home masking experiment for colds and flu, which found a 60% to 80% protective effect.
  • The Thai contact tracing analysis, which found a 70% protective effect.
  • The USS Theodore Roosevelt investigation, which also found a 70% protective effect.

The Danish study, on the other hand, doesn’t show a protective effect. In fact, it can be interpreted as capping the size of the protective effect — at least for the environment in which the experiment was conducted — because if procedure masks offered much better than 50% protection, the study should have picked it up. Scientists have ideas, but no compelling answers, as to why this study differs from the others.

As for my own opinions about masking, I stand by my earlier statements. There’s some reason to believe that wearing a mask may protect you from Covid-19. That seems even more likely if the mask is a filtering facepiece respirator, such as an N95 or KN-95 mask, which was was designed to protect the wearer from this kind of threat. Frontline healthcare workers all over the world have been using these masks for months, and while I’m not aware of any studies on the masks’ efficacy against Covid-19 in real-world healthcare settings, healthcare workers seem to think they’re worth the trouble.

For all these reasons, filtering facepiece respirators were a large part of my mask posts, and I still think they should be effective, and it’s likely that procedure masks and even cloth masks provide some protection.

Related

Share This Post

Filed Under: Public Health

Reader Interactions

Leave a Reply Cancel reply

Primary Sidebar

Search

Chicago Metro Area Covid Status

Recent Posts

  • A Libertarian Watches “Narcos”
  • COVID-19 is Not Endemic and the Fight is Not Over
  • Covid Stats Dump – 2022-01-29
  • Ghostbusters: Afterlife — Review
  • Ken Gibson, Rest In Peace (reprise)
  • N95 or Bust!
  • Ken Gibson, Rest In Peace
  • Inflation or Productivity Loss?

Follow Us

  • Twitter
  • Facebook

Bloggy Goodness

  • Agitator
  • DrugWar Rant
  • Duly Noted
  • Dynamist
  • Hit & Run
  • Honest Courtesan
  • Nobody's Business
  • Popehat
  • Ravings of a Feral Genius

Blawgs

  • a Public Defender
  • appellatesquawk
  • Blonde Justice
  • Chasing Truth. Catching Hell.
  • Crime & Federalism
  • Crime and Consequences Blog
  • Criminal Defense
  • CrimLaw
  • D.A. Confidential
  • Defending Dandelions
  • Defending People
  • DUI Blog
  • ECIL Crime
  • Gamso For the Defense
  • Graham Lawyer Blog
  • Hercules and the Umpire
  • Indefensible
  • Koehler Law Blog
  • Legal Satyricon
  • New York Personal Injury Law Blog
  • Norm Pattis
  • not for the monosyllabic
  • Not Guilty
  • Probable Cause
  • Seeking Justice
  • Simple Justice
  • Tempe Criminal Defense
  • The Clements Firm
  • The Trial Warrior Blog
  • The Volokh Conspiracy
  • Underdog Blog
  • Unwashed Advocate
  • West Virginia Criminal Law Blog

Bloggers

  • Booker Rising
  • Eric Zorn
  • ExCop-LawStudent
  • InstaPundit
  • Last One Speaks
  • Leslie's Omnibus
  • Marathon Pundit
  • Miss Manners
  • Preaching to the Choir
  • Roger Ebert's Journal
  • Speakeasy Blog
  • SWOP Chicago

Geek Stuff

  • Charlie's Diary
  • Google Blogoscoped
  • Schneier on Security
  • The Altruist
  • The Ancient Gaming Noob
  • The Daily WTF
  • xkcd

Resources

  • CIA World Factbook
  • Current Impact Risks
  • EFF: Bloggers
  • Institute for Justice
  • Jennifer Abel
  • StrategyPage
  • W3 EDGE, Optimization Products for WordPress
  • W3 EDGE, Optimization Products for WordPress
  • W3 EDGE, Optimization Products for WordPress
  • Wikipedia
  • WolframAlpha

Gone But Not Forgotten

  • Peter McWilliams

Copyright © 2022 Mark Draughn · Magazine Pro On Genesis Framework · WordPress

Go to mobile version