Join Waitlist We will inform you when the product arrives in stock. Please leave your valid email address below.
Raised Garden Beds

How to Build a Raised Garden Bed on Concrete, Patio, or Hard Surface

Last Updated on August 9, 2023

Are you dreaming of homegrown veggies, herbs, and flowers – but the only space you have for a garden bed is on concrete, a patio, or other hard surface? Or perhaps you’re like us and have a good-sized yard, but want to maximize growing space by adding raised garden beds on your hardscape areas as well. Maybe your patio is simply the sunniest spot you have. No matter the reason, I fully support your effort to grow  – wherever you can! 

Read along to learn tips and best practices for building a raised garden bed on concrete or other hard impervious surfaces. In this example, I’ll show you how we prepped a new wood raised garden bed to go on top of our asphalt driveway. We’ll discuss important concerns such as drainage, soil retention, and soil quality.

Finally, we’ll also cover alternate options for putting planter boxes on hard surfaces – such as self-contained pots and beds. If you’re not up for building your own, check out this awesome selection of elevated raised garden bed kits from Gardener’s Supply.

Quick Summary of Tips

  • Choose a sunny, level location for the raised bed.
  • Keep in mind that installing a raised garden bed on top of a deck may cause staining or water damage, unless drainage is controlled. Discoloration on concrete should be easy to remove with a pressure washer if needed.
  • Provide adequate drainage, bed depth, and high-quality soil for the plants to grow best.
  • I don’t recommend placing the soil itself right on the concrete. Yet I don’t necessarily recommend adding a solid bottom on the bed either. Instead, we create a wire and fabric “basket” or bottom on our raised bed to both contain the soil but also promote drainage.
  • If our example doesn’t suit your situation, read the “alternative options” for more ideas to add growing space to your patio, deck, or other hardscape area!

Disclosure: This post may contain affiliate links to products for your convenience, such as to items on Amazon. Homestead and Chill gains a small commission from purchases made through those links, at no additional cost to you.

An espaliered apple tree in a 3x2 foot planter box on concrete. There is pint glass of a beverage on the corner of the bed that  only has about 1/4 left and a chicken flanks the other side on the ground.
Here is one alternate design that we’ll talk about near the end of the article: an elevated and mobile raised planting box.

Getting Started: Evaluate Your Space

Before you go slapping together a raised bed and plopping it down on your patio, take a moment to think about your space. As with any garden space, an ideal location should receive full sun (or as much as possible). It should also be fairly level. Even more, building a raised garden bed on top of concrete or other hard impervious surfaces brings about a whole new set of considerations. What is the hard surface like? Can it handle the moisture and weight of a heavy raised garden bed?  

For example, if you’re hoping to add raised garden beds on top of a nice wood deck, the style of bed I’m going to show you in this article may not be the best choice – which sits right on the ground and drains from the bottom. Instead, you’d likely want to protect your deck by using an elevated raised bed kit, or one that has a solid bottom and contained drainage system. In that case, See the “Alternative Options” section at the end of this article. 

On the other hand, the steps we used to modify our newest driveway garden bed will work well on top of concrete, asphalt, pavers, or similar surfaces. If and when you ever decide to move the garden bed, it may have some discoloration below. Yet a pressure washer should be able to remove it!

An empty space of pavement that is along the side of a fence. This is a perfect area for a raised garden bed on concrete.
Here is the driveway space we will add a new raised bed to. Facing southwest, this location gets excellent midday to afternoon sun. We already grow our potatoes in grow bags and also have potted milkweed in this space, and it does great!

Drainage & Water

All garden beds need good drainage, including raised garden beds installed on hard surfaces! Soggy soil and drowning roots lead to unhappy, unhealthy plants. Therefore, it is not a good idea to add a secure solid bottom on your bed. That is, unless there are plenty of drainage holes, an internal drainage system, or it otherwise has the ability to freely drain excess moisture from the soil. On the other hand, I don’t necessarily suggest putting soil directly on top of concrete. (You’ll see what I mean in our driveway bed example and “containing the soil” section below.) 

There is a common misconception that putting a raised garden bed on concrete or other hard surfaces will prevent it from draining well. The opposite is actually true, as long as the bed is open on the bottom! A well-built raised garden bed on concrete will actually drain faster than one sitting snugly down within the soil of your yard. Therefore, you may even find the need to water a garden bed on concrete more often than others, like most container gardening. Especially since the surrounding concrete may slightly raise the soil temperature, increasing evaporation and drying as well. 

But where does all that water drain to?

Well, excess runoff from your raised bed will run to wherever rain water usually collects on your hard surface. For example, if you have a drain system, a slight slope to direct water flow off the edges, or a depressed area where water usually collects – that is where the excess raised bed water will go too. However, that doesn’t necessarily mean a ton of water is going to be flowing out of your beds all the time! 

With a combination of tailored watering practices (not too much!), quality soil (one with both adequate drainage but also good moisture retention), and the right bed height (taller is better!), your garden bed should be able to retain most of the water you provide it. When you water your new raised garden bed, provide enough water to keep the soil consistently damp. On the other hand, avoid watering so much that water comes pouring out from the bottom. You’ll find your groove.

The understory of a planted out raised bed is shown. Mulched with compost and woody bark material. A shower of water is coming down in between the plants from a watering can.

Recommended Bed Depth

Most common vegetable plants need a minimum of 12 inches of soil to grow big and healthy. The more space for roots, soil, and nutrients – the better! In fact, many plants prefer 18 to 24 inches or deeper, including tomatoes, carrots, peppers, eggplant, and even kale. With a traditional in-ground garden or raised beds open to the soil below, roots can grow deep and uninhibited. In contrast, putting a raised garden bed on concrete is essentially like creating a large pot or container. The roots (and general plant health) are restricted to what space you provide it. 

All that said, I suggest a minimum depth of 12 inches (preferably 18”) for any raised bed that will be put on a hard surface. In addition to increasing root space, providing ample depth and soil will reduce water runoff and keep the soil moist longer. The bed we built in the example below is 18 inches, or three 2×6” boards tall. Stacking four 2×6” boards to make a 22 to 24-inch deep bed is also great, but will take a lot more soil to fill.

The corer of a garden patio that has been lined with garden beds around a concrete patio. There are tomatoes and eggplant planted in the beds along with a small agave in a tall ceramic pot. There is a trellis in one of the beds that contains a passion fruit vine. Beyond lies the rest of the yard with various trees and chickens pecking around in the ground.
For visual reference, these are 2-foot tall beds (22 inches). The one you’ll see in this article example is 16-18 inches tall. The taller beds in this photo are sitting on the soil around our patio, not on the patio itself. We chose extra-deep beds in our backyard to keep them above chicken beak height (along with adding DIY trellises to the back side of the beds), since our girls free range in the back yard.

Soil Choice

When it comes to filling a garden bed on concrete, invest in high-quality soil and compost to help compensate for the shallower root space. We filled the new driveway bed with the same soil and compost mixture we fill all of our raised beds with. You can learn about building the ideal organic soil in detail in this article. In a nutshell, we use a combination of high-quality bagged soils, bagged compost, and homemade compost. When filling many large beds at once, we also have bulk soil and compost delivered. 

The ideal raised bed soil is rich in nutrients and organic matter. It should allow for adequate drainage, but also have good moisture retention properties. Do not use “potting soil” only. It is quite fluffy and will drain and dry out too fast. I suggest using a combination of some potting soil, some general planting or raised bed mix, and plenty of compost. Compost is key! Compost and worm castings will help greatly with moisture retention. You don’t want all the water and nutrients to run right out of the bottom of the bed! Mulching the soil surface also increases moisture retention and reduces your need to water as frequently. 

Curious about compost? Learn composting basics (and 6 different ways to compost at home) in this article. Or check out our detailed vermicomposting 101 article to learn all about composting with worms!

Hands are cupped together containing dark, rich soil that contains a few worms. There are various greens such as dandelion greens and chard growing in the background.

Containing the Soil 

It isn’t the best idea to add soil straight into a garden bed directly on top of concrete. Why? For one, some of the soil will seep and wash out from the bottom of the bed. That will make a huge mess around your bed surface. It will also slowly reduce the amount of soil in the bed entirely.  Also, concrete is alkaline while most garden soil is neutral to mildly acidic. I have heard it may slightly increase the pH of your soil over time when in direct contact with concrete. 

Consequently, the best way we have found to contain the soil within a raised garden bed on top of concrete is to create a sturdy “basket” for the soil within the wood frame of the bed. That is, in lieu of adding a solid bottom to the bed. We’ll also talk more about solid-bottom raised beds in the Alternative Options section near the end of this article. 

Now, let me show you what I mean…

Building a Wood Raised Garden Bed to Install on Concrete

Step 1: Build or Obtain a Raised Garden Bed Frame

First, you need to build (or otherwise obtain) a wood raised garden bed frame for your space. If you need any pointers here, please check out our detailed “How to Design & Build a Raised Garden Bed” tutorial. There is even a step-by-step video included! For our new driveway raised bed, we simply used our standard bed design – but modified the bottom and installation. The dimensions in this example are 6 feet long, 20 inches wide and 18 inches tall. We needed to keep it quite narrow so I wouldn’t hit it with my car going in and out of the driveway!  

A newly made raised garden bed made out of redwood. It is sitting next to already made garden beds that have cabbage planted in them and another with fava beans. This is a made to be a garden bed on concrete.
The raised bet we built for the driveway project.

Note that the following steps will work best as-described below with a wood bed frame that is about 2 or 3 feet wide. For beds wider than 3 feet, I suggest you consider adding a couple wood cross-beams along the bottom of the bed. They will help support the weight of the soil on top of the fencing and landscape fabric we’re going to add next. Sorry, I don’t have a photo but I did my best to draw what I mean! See below. Use a durable wood such as cedar or redwood 2×4” or 2×6” boards. Install them within the frame (flush or just up from the ground level) NOT attached to the outer bottom of the bed frame. That would inhibit your bed from sitting flat on the ground. Make sense?

A handwritten sketch of a 4 foot wide bed, emphasizing that if you create a garden bed on concrete that is this wide or more, you should place additional boards on the bottom of the bed for support. These boards are highlighted in yellow while the rest of the 3D square image is in blue ink.

Step 2: Line the Bottom with Hardware Cloth

Next, we are going to line the inside bottom of the raised bed frame with hardware cloth wire fencing material. The hardware cloth serves as a sturdy and durable bottom for the bed, which landscape fabric will lay on top of next. Without hardware cloth, landscape fabric alone would easily rip under the weight of the soil. It would also be easy to accidentally tear the fabric open on rough ground, such as when you’re setting the bed in place or if you ever move it. 

For this step, I highly suggest using hardware cloth over something like chicken wire. Galvanized hardware cloth won’t rust, is extremely strong and long-lasting. In contrast, chicken wire sags, rusts, and breaks down over time.  The gauge and hole size of the hardware cloth doesn’t matter all that much. We used this 2-foot wide 1/2” opening hardware cloth, though wider rolls are available too.

Truth be told, we put hardware cloth under all of our garden beds, including those in the soil. Gophers are a real problem here, and it stops them from getting in the beds and eating everything! It is also the material we use for predator-proofing our chicken coop and run.

Create a wire basket bottom 

Using aviation snips or metal snips, cut the hardware cloth in a manner that gives you a few extra inches of slack hanging over every side of the bed. With the bed sitting right-side-up, place the hardware cloth on top of the bed. Bend up each side to follow the shape of the bed, and then press it down into the bed. Try to keep an even amount of slack on all sides. Then carefully form the hardware cloth wire bottom to fit the inside of the bed. The corners get a bit awkward. Just do your best to meld and bend the wire to be as flush as possible with the wood. Wear good poke-proof gloves! I’ve also found it helpful to stand inside the bed and step on the wire to press it into place.

A three part image collage, the first image shows a raised garden bed with a section of hardware cloth covering the top of it. The second image shows the hardware cloth bent upwards at the edges so it will fit inside the bed. The third image shows the hardware cloth pushed down into the bottom of the bed, the sides of the hardware cloth are bent upwards, creating a four inch liner around the inside of the bed.

Why don’t we just attach it to the bottom side of the bed frame, you ask? I mean, you certainly could. Yet in my experience, wire attached to the bottom edge pops loose more easily from the weight of the soil pushing down on it compared to wire attached on the inside walls of the bed. You know, physics. Also, a totally flat wire bottom doesn’t create the same type of “basket” we’re aiming for, and may not drain quite as well. 

Attach the hardware cloth

Now, go around the perimeter of the hardware cloth and secure it to the lower inside walls of the bed every 6 inches or so. We used wide-head cabinet screws, positioned in a way that caught and pinched the hardware cloth in place. You could also use galvanized U-nails or poultry staples. Long staples may work too, but could also pop loose more easily.  

A three part image collage, the first image shows the inner wall of a raised bed and the hardware cloth affixed to the side with a few screws. The second image shows a close up of the screws used and in the background there are a few screws that have been screwed into the side, connecting the hardware cloth to the wood. The third image shows a zoomed out image of the inside of the garden bed where there are various screws throughout the inside, connecting the hardware cloth with the wood, creating a bottom for a raised garden bed on concrete.

Step 3: Add Durable Landscape Fabric

Once the bottom wire basket is in place, add a layer (or two) of commercial-duty landscape fabric on top of it. This is what will keep the soil inside your bed, but also allow for excellent drainage! I emphasize choosing commercial-duty or high-quality landscape fabric because there is a lot of cheap crap out there. And I don’t just mean “cheap” as inexpensive; I mean poorly made. The common thin stretchy black plastic-like stuff will rip into shreds over time and make a huge gross mess. Two I suggest are this one or this option. 

Add the landscape fabric to the inside bottom of the bed in a similar manner as the hardware cloth. We had a roll of 4-foot wide landscape fabric, so we folded it in half to create a dual layer in the just-under 2 foot wide bed. It is important to leave the fabric very loose rather than taut, to provide give as it rests against the hardware cloth for support. The role of the fabric is to prevent soil from leaking from the bed, but it should not be responsible for bearing the weight of the soil. That is the hardware cloth’s job. Because there shouldn’t be much weight pulling down on the fabric, we simply used a staple gun to secure the cloth in place around the inner lower perimeter of the bed.


A four part image collage, the first image shows a raised garden bed with a roll of landscape fabric on top of it. The second image shows it being lined on the inner portion of the raised bed. The third image shows a staple gun and a few staples where it was affixed to the inside of the bed. The fourth image shows a few corners of the raised bed and how the fabric was attached to the inner walls.
When adding the landscape fabric to the bottom of the bed, I made sure we had plenty of excess and it sat loosely inside. I also pushed down on it, keeping the fabric flat against the bottom as I attached it, to ensure the staples wouldn’t pop out from being overly tight once soil was added.
The bottom of a raised garden bed is shown with its hardware cloth bottom lined with weed fabric to keep the soil inside when it's used as a garden bed on concrete.
A view of the bottom of the bed with the new basket bottom in place.

Step 4: Place & Fill Your Bed!

Ta-da! Your new raised bed is all prepped and ready to be installed in its new hardscape home. Set the bed in place, as level as possible. Make sure you like the location before filling it with soil! Now, add soil to the bed, taking care to keep the fabric flush against the inside of the bed as you go. Speaking of taking care… remember to be gentle and dig only lightly in this bed, now and in the future.

We are huge fans of no-till gardening here anyways, so we don’t intend on digging way down into the soil any time soon anyways. But if you do need to do any digging, use caution to not accidentally rip open your fabric bottom. It isn’t the end of the world if it gets a little tear. To learn more about ongoing soil care for your raised bed, check out this article about how we amend and fertilize our raised beds before planting (or between seasons) using a no-till method. 

A garden bed on concrete with three young tomato plants planted in it. They are along a wooden fence, a great place to work with in limited space.

Alternate Options

If this style and example doesn’t work in your situation for whatever reason, there are still a TON of other options to garden on a patio, deck, balcony, driveway, or other hardscapes! 

Raised Bed Kits

For instance, there are several quality elevated raised bed kits out there. Some have drainage holes that you could add drip pans underneath, effectively protecting the surface below. Others have a fully solid bottom and an internal drainage collection system, and you can direct runoff with a hose or valve. Check out the awesome selection of elevated raised bed kits from Gardener’s Supply here. Vegepods and Earthbox additional examples of a fully-contained systems, and would be great on a deck or balcony.

Other DIY options

Kits aside, there are also many other DIY raised bed variations from what I shared here today. In fact, we have built our standard raised bed design and added a wood bottom on a few occasions! See the photos of our tree box below. The bottom is essentially solid, made of the same redwood 2×6” boards used for the rest of the box. We drilled several large half-inch drainage holes in the bottom, before lining the interior with landscape fabric and adding soil. We chose this style because we wanted to elevate the small beds on heavy-duty furniture dollies with wheels, making them mobile. Otherwise, we personally avoid adding wood bottoms since they do inevitably inhibit some drainage and are prone to rotting over time. 

A two part collage, the first image shows a newly made wooden planter that is at least 3x2 feet tall and wide flipped upside down with a moving dolly placed on the bottom. The secon image shows the the planter box flipped right side up, it has been lined with weed fabric to keep the soil inside the planter box and it is filled halfway with soil.
Our mobile planter box, with redwood 2×6 boards screwed on the bottom. We didn’t attach the dolly; I just set it there as a visual.
The side of a blue house has a few garden bed on concrete next to it. An espaliered apple tree is in a tall wooden box planter and a half wine barrel contains a pineapple guava shrub. There are various cacti planted in ceramic pots throughout the area.
The wood-bottom mobile tree box on the patio, complete with an espalier Fuji apple tree and sunflower buddy. It does dribble brown water around it as it drains, though most of the water comes out of the main drainage holes in the center of the bottom. If you look closely, you can see that we added a drip tray to catch some of the runoff below the planter box dolly. You could do something similar elevated on bricks or concrete blocks as well.

You could use the same design and idea as our solid-bottom rolling boxes, but prop the bed up on bricks instead. Then, a drip tray can slide under and in line with the drainage holes. However, keep in mind that some water will still leak from the seams in the boards. Yet it will be more concentrated from the large drainage holes.

I am leery to suggest adding legs to a raised bed, unless you design it very carefully. For example, using short 4×4” posts supported with metal braces. Do NOT underestimate the extreme weight of lumber and soil, especially once it is wet! The dollies we use for our rolling boxes are rated up to 1500 pounds. Plan to make beds that you wish to elevate on legs or dollies smaller than ones you’d put on the ground (either in depth, or width and length).

Containers & Pots

Finally, there is the whole wide world of container gardening out there. There is nothing wrong with growing things in pots. We heavily rely on fabric pots or grow bags to supplement our raised bed gardening space. Truthfully, we prefer the mobility and added benefits (such as “air pruning”) of grow bags over raised beds for many of our crops, including to grow potatoes. Heck, they even make raised beds out of grow bag materials! We also use half wine barrels as planting containers, with drainage holes added to the bottom. Essentially, any container with drainage can be used to grow food!

A half wine barrel is flipped upside down, it has four wheels (casters) attached to the bottom and nine 1/2 inch holes drilled into the bottom. A perfect a perfect mobile garden bed on concrete.
A half wine barrel (or whiskey barrel) can become an excellent planting container! However, because they’re designed to hold in liquid, you need to add plenty of large drainage holes. We drill several 1/2″ or 3/4″ holes in the bottom of each one, and then line the bottom with landscape fabric to the soil doesn’t eventually clog the holes. When they’re going out in the yard, I space the holes more evenly across the entire bottom and elevate them on a few bricks. Because this was going on the patio with heavy-duty casters, I concentrated the holes more in the center so a drip tray could be placed below them. Be sure to check the weight rating for your casters! I also suggest using ones with a flat plate that attaches with several screws, not one with a single stem/screw.

And that is how you build a raised garden bed to put on concrete.

Or perhaps I should say… how we like to do it! Clearly, there are many different ways you can garden on top of hard surfaces. With a little creativity, food can be grown in more places than most people imagine! I hope this article gave you plenty of new ideas for your space. Please let me know if you have any questions. Happy planning, building, and growing.

Don’t miss these awesome related articles:

DeannaCat signature, keep on growing


  • Mandy

    Hi Team – your information is exactly why we’ve been looking for. We did however need to do a little googling to find the comparative Aussie terms for some of your materials 😂
    Couldn’t be happier having found your site – thank you so much. Best wishes from down-under 🇦🇺

    • Aaron (Mr. DeannaCat)

      Hi Mandy, we are so glad you found our site and we appreciate all the support we get from everyone down-under! Trust us when we say we’ve heard a few Aussie terms we’ve had to google for translation as well, haha, whipper snippers being one of them. Thanks for reading and have fun gardening.

  • Mattie

    This article was so helpful! I got a little overwhelmed researching for my garden because the recommendations for a raised bed vs a container garden are so different. Since my raised beds are on top of concrete, they’re a bit of both! Thank you so much 😊

  • gene deerman

    wow! terrific idea and your instructions are SO clear and smart:-) Wondering about a version of this for raised beds under our Torrey Pines (the pines grow in such a way that they do NOT shade the garden area). We are trying to avoid tree roots growing INTO our beds (bad for trees and bad for growing food). What seems especially suited is your idea to prop UP the beds on bricks (we’ve got piles of old ones). Do you think that this air gap would be sufficient? The tree roots wouldn’t “find” the water and nutrients because of the gap between bed bottom and earth? If you think it’s worth trying, how much air gap would you advise? Thank you! Your blog is a life saver!

    • Aaron (Mr. DeannaCat)

      Hi Gene, it seems like adding raised beds that aren’t in direct contact with the earth would be the best for your garden and especially your Torrey Pines as adding soil to the top of tree feeder roots can be detrimental to the trees. You could add bricks as the foundation of a raised bed (assuming you are adding a wooden bottom to the bed with drainage holes) to keep it elevated off of the ground. I would assume even adding one layer of bricks would be sufficient to keep the raised bed off of the ground, although if you add another layer of bricks, you may want to use heavy duty adhesive to glue the two layers together. We built our greenhouse foundation in a similar manner at our older property and you can see how we did it here. You could also purchase pre made elevated planters like these. Hope that helps and reach out if you have any other questions, good luck!

      • SuhJin Park

        Hi Deanna,
        We got a metal raised bed (vego) and wondering what you might suggest to secure the hardware cloth and landscape fabric?
        Thank you!

        • Aaron (Mr. DeannaCat)

          Hi SugJin, for metal raised beds, you likely just need to cut out a section of each material to place underneath the metal raised beds with some overlap all around the edges of the bed (maybe 1 foot on each side all around). Secure the hardware cloth and landscape fabric to the ground with heavy duty 6 inch landscape staples, after that, you can mulch around your raised beds using bark or whatever mulch material you prefer. Hope that helps and good luck!

  • Liz Stanwell

    I can’t wait to do this to
    Some Raised bed frames I just bought. Do I need to line the inside with black plastic to protect the wood from Rotting??

    • Aaron (Mr. DeannaCat)

      Hi Liz, we don’t line the beds with anything as we recommend using redwood or cedar which are naturally rot and pest resistant. Hope that helps and good luck setting up your raised bed(s)!

  • Karen Ibbitson

    Hi Aaron,
    Thanks so much for your response. We did line with the landscape fabric that Deanna recommended. We are covering with tarps right now as it’s pouring here in Southern California! Sheesh! Karen

    • Aaron (Mr. DeannaCat)

      No problem at all Karen, and yeah, during excessive rainfall, especially without any plants in the garden beds, may as well cover them up and cut down on runoff, stay safe out there!

  • Karen Ibbitson

    Hello Homestead and Chill,
    My hubby and I followed your directions for building raised beds on concrete. They measure 3′ x 6′ and we built 3 of them. They are 24 inches deep, so in order to fill them, we used “Hugelkulture” and started with cardboard, then some branches, twigs, leaves, and other garden debris. Then, we put in several inches of compost that we made ourselves. Finally, we topped them off with 30% bagged potting soil, 30% perlite, and 30% peat moss. Then, it started to rain! (We live in Southern California.) Now we have a horrible brown mess, with an oily sheen, all over our patio and it’s stained the concrete.

    We don’t know if the brown color is coming from leaves or peat moss. The oily sheen is concerning as we really don’t know what’s causing that. We’re hoping that when we plant up these raised beds the plants will suck up the water and it won’t be so much of an issue.

    Any thoughts you have would be appreciated!

    • Aaron (Mr. DeannaCat)

      Hi Karen, if you have garden beds on a patio or other hard surface, the patio/surface will get dirty due to runoff. If nothing is in the beds at the moment, it is likely a good idea to cover them with tarps to keep them from getting too much water running through them, especially so since there are no plants in the beds. The oily sheen is likely something coming out of your patio as the materials you added to the beds would produce brown/off color water runoff but shouldn’t have anything oily and that goes for your wood for the raised beds as well. Did you add landscape fabric to the bottom of the beds to try and reduce any soil that may escape from the bottom during excessive rains?

Leave a Reply

Your email address will not be published. Required fields are marked *