subclass-and-override vs partial mocking vs refactoring

Attention all noble mockers and evil partial mockers. Actually… both styles are evil :) Spy, don’t mock… or better: do whatever you like just keep writing beautiful, clean and non-brittle tests.

Let’s get to the point: partial mocking smelled funny to me for a long time. I thought I didn’t need because frankly, I haven’t found a situation where I could use it.

Until few days ago when I found a place for it. Did I just come to terms with partial mocks? Maybe. Interestingly, partial mock scenario seems to be related with working with code that we don’t have full control of…

I’ve been hacking a new feature for mockito, an experiment which suppose to enhance the feedback from a failing test. On the way, I encountered a spot where partial mocking appeared handy. I decided to code the problem in few different ways and convince myself that partial mocking is a true blessing.

Here is an implementation of a JunitRunner. I trimmed it a little bit so that only interesting stuff stayed. The runner should print warnings only when the test fails. The is wrapped in a separate method so that I can replace this method from the test:


How would the test look like? I’m going to subclass-and-override to replace runTestBody() behavior. This will give me opportunity to test the run() method.


It’s ugly but shhh… let’s blame the jUnit API.

The runTestBody() method is quite naughty but I’ve got a powerful weapon at hand: partial mocking. What’s that? Typically mocking consist of using a replacement of the entire object. Partial stands for replacing only the part of real implementation, for example a single method.

Here is the test, using hypothetical Mockito partial mocking syntax. Actually, shouldn’t I call it partial stubbing?


Both tests are quite similar. I test MockitoJUnitRunner class by replacing the implementation of runTestBody(notifier). First example uses test specific implementation of the class under test. Second test uses a kind of partial mocking. This sort of comparison was very nicely done in this blog post by Phil Haack. I guess I came to the similar conclusion and I believe that:

  • subclass-and-override is not worse than partial mocking
  • subclass-and-override might give cleaner code just like in my example. It all depends on the case at hand, though. I’m sure there are scenarios where partial mocking looks & reads neater.

Hold on a sec! What about refactoring? Some say that instead of partial mocking we should design the code better. Let’s see.

The code might look like this. There is a specific interface JunitTestBody that I can inject from the test. And yes, I know I’m quite bad at naming types.


Now, I can inject a proper mock or an anonymous implementation of entire JunitTestBody interface. I’m not concerned about the injection style because I don’t feel it matters that much here. I’m passing JunitTestBody as an argument.


Let’s draw some conclusions. In this particular scenario choosing refactoring over partial mocking doesn’t really push me towards the better design. I don’t want to get into details but junit API constrains me a bit here so I cannot refactor that freely. Obviously, you can figure out a better refactoring – I’m just yet another java developer. On the other hand, the partial mocking scenario is a very rare finding for me. I believe there might be something wrong in my code if I had to partial mock too often. After all, look at the tests above – can you say they are beautiful? I can’t.


  • I cannot say subclass-and-override < partial mocking
  • not always refactoring > subclass-and-override/partial mocking
  • partial mocking might be helpful but I’d rather not overuse it.
  • partial mocking scenario seems to lurk in situations where I cannot refactor that freely.

Eventually, I chose subclass-and-override for my implementation. It’s simple, reads nicer and feels less mocky & more natural.

116 Responses to subclass-and-override vs partial mocking vs refactoring

  1. […] Mockito author’s last blog post about the subject or this mockito mailing list post. Basically the code should be refactored or we […]

  2. […] is mostly by-design decision on Mockity side. The author argues that partial mocking smells fishy, and that it’s better to refactor the code and eliminates […]

  3. Alexander Kjeldaas says:

    This spy(…) syntax doesn’t work if the class you’re testing is abstract and takes a constructor argument.

    In that case you can’t create an object for the spy syntax, so I think there’s something wrong/lacking with the Mockito API for this. There needs to be a way to inject dependencies into an abstract class.

  4. szczepiq says:

    actually, it should be possible to spy on abstract classes. Don’t remember now but it will be something like that : mock(Foo.class, withSettings()…

  5. Anonymous says:

    I have stubbed mocked class in my test class but I am not getting the expected return.
    will you please tell me Why?

  6. szczepiq says:

    Ping the mailing list with the sample code and the community should give some help. Cheers!

  7. Anonymous says:

    when( dynamicRecommendationsManager.getNextAction(bankCustomer,
    otherServiceToCust, borrowingLimits, address, custNeed, questionReply)).thenReturn(nba)

    in the above code otherServiceToCust and questionReply are list and all others are objects returned from other services which have been stubbed.

    I think the problem is with list. is there any way to send NonNull list in stubbing as we do in jMockery framework

  8. Anonymous says:

    i am new to mockito. which mailing list you are talking about

  9. Anonymous says:

    which mailing list you are talking about

  10. szczepiq says:

    The mailing list address listed on the pages.

  11. Michael says:

    Hi Szczepan. First of all, thank you so much for giving the world Mockito. The world is a much better place because of it =)

    Would partial mocking, overriding, or refactoring be appropriate for a much simpler situation? In your example, you needed runTestBody()’s implementation to actually execute some special code for your test. What if runTestBody() returned a value and all you cared about was that runTestBody() returns some different value for your test?

    I would imagine that for a simple situation like this, partial mocking and overriding would create a very dirty feeling and that refactoring would be the correct choice.

  12. szczepiq says:

    I think the less you need to use partial mocks the better and cleaner your design is :)

  13. Anonymous says:

    If there is a method x which is dependent on other y method(this y method may/may not return void) of the same class, then how should the test of x method be ?

    should i stubbed class and override method y and use this class? or
    should i use spy?

  14. chanel sunglasses says:

    This is applicable especially for commercial merchandise like luxury watches, bags, accessories and designer label clothing. In the market of luxury handbags and accessories, names like Louis Vuitton, Coach, Chloe are very common ones. So are their replicas in the bargain markets. Replica handbags are mostly produced in China and sold all around. chanel sunglasses

  15. It’s actually a cool and useful piece of info. I am satisfied that you shared this useful information with us. Please stay us informed like this. Thanks for sharing.

  16. ddos vps says:

    Wow, marvelous blog structure! How lengthy have you been blogging for? you made blogging look easy. The whole glance of your website is excellent, as smartly as the content material!

  17. Maribel says:

    Kitten:I knew I was to young for both Wine and Beer..what was I thinking?This Kitten has suelry learnt that, a Wine and Beer escapade, induces a sure fire Mixed State upon the user!Milk is the Pure liquid this Kitten will never stray from again !

  18. Sagar says:

    If you are forced to use Answers in Mockito, at least wrap them in well named, stiatc methods available somewhere. You must agree this is much more readable:when(personJobDao.create(any(PersonJob.class))).thenAnswer(withFirstArgument());

  19. None can doubt the veracity of this article.

  20. You’ve really captured all the essentials in this subject area, haven’t you?

  21. Sporo interesujących rzeczy można dowiedzieć się w Twoim artykule.
    Lubię przeglądać strony związane z pieniędzmi (w
    końcu wkedza to klucz do sukcesu). Dodaję stronkę do ulubionych i zaprsszam doo mnie.

  22. Hey there! I just wanted to ask if you ever have any
    issues with hackers? My last blog (wordpress) was hacked and I ended up losing months of hard work due
    to no data backup. Do you have any solutions to stop hackers?

  23. continuously i used to read smaller articles or
    reviews which also clear their motive, and that is also happening with this article
    which I am reading at this place.

  24. Velva says:

    It’s remarkable designed for me to have a web page,
    which is helpful designed for my experience.
    thanks admin

  25. Stanley says:

    We can help you search for the best rate available.
    If you are looking for extended warranty automobile insurance package that provides
    coverage for air conditioning, front and rear suspension, wiring,
    brakes, steering, transmission, and engine, you can consider the gold
    plan. When shopping for insurance, keep in mind that an insurance agent does
    not necessarily know that an SR-22 filing is required unless a client specifically
    asks for one.

  26. That is really fascinating, You are an overly professional blogger.
    I have joined your rss feed and look ahead to looking for extra of your excellent post.
    Additionally, I have shared your website in my social networks

  27. Anke says:

    In some states you can purchase your car insurance from the vendor who sold you the vehicle.
    You will recognize they will give you great treatment
    whilst you are there.

  28. WOW just whaat I was looking for. Came here
    by searching ffor TOP ELEVEN HACK TOOL

  29. It’s not at all widespread process to associate economics along with jurassic park
    builder triche. Usually, jurassic park builder triche 2014 could well be considered
    to have no influence on the financial status, but at this time there have been some outcomes.
    Your sales industry linked to jurassic park builder triche android
    is in reality a only two.

  30. Great blog right here! Additionally your website lots up very fast!
    What host are you the usage of? Can I get your associate hyperlink in your host?
    I wish my website loaded up as fast as yours lol

  31. 8 ball pool hack 2014 has been online for several centuries and has a critical meaning inside
    lives of the many. It will be risk-free to be able to believe which 8
    ball pool hack 2014 will be close to for years and also have a significant impact on the particular day-to-day lives of countless

  32. Lawrence says:

    I always spent my half an hour to read this webpage’sarticles
    everyday along with a cup of coffee.

  33. Douglas says:

    Turn the heat off and allow the treats to cool thoroughly before removing.
    ) It is just the same as the difference between playing the
    guitar hero game and dreaming of being a rock God – and
    being a dreamer all your life. You will need to obtain the following
    ingredients to make one gallon of liquid goat’s milk soap:.

  34. It is not popular exercise for you to associate economics with fileice downloader 2014.
    Typically, fileice downloader 2014 will be
    considered to have no relation to our own economic situation, however there are actually a number of side effects.
    The actual sales market connected with fileice downloader 2014 is actually a only two.
    3 billion buck annually business as well as growing each and every year.

  35. In spite of just what many may believe, world
    of tanks triche established fact across many places worldwide.
    world of tanks hack tool ‘s been around for a lot
    of generations and has a very important that means within the life of many.
    It would be safe and sound to help presume of which world of tanks hack are going to be about for years and possess a huge impact on the particular day-to-day lives of countless individuals.

  36. Nice post. I learn something totally new and challenging
    on sites I stumbleupon on a daily basis. It will always be useful to read content from other authors and use a little something from other web sites.

  37. It isn’t common exercise for you to link economics along with pirater
    mot de passe hotmail. Usually, pirater un compte hotmail would be considered to don’t have any affect on your financial situation, but there are
    in reality some side effects.

  38. This design is spectacular! You certainly know how to keep a reader
    entertained. Between your wit and your videos,
    I was almost moved to start my own blog (well, almost…HaHa!) Wonderful job.

    I really enjoyed what you had to say, and more than that, how you presented it.
    Too cool!

  39. Your understanding of this subject is astounding.

    It really touched me and I am truly satisfied I discovered this material.
    Thank you very much.

  40. In a sea of thousands, that can be a reassuring thing.

    Diversity is not just about forcing everybody to get along and tolerate each other.
    Again these maps can be useful to people depending on its oblique presentation.

  41. Hi! I’ve been reading your blog for a while now and finally got the bravery
    to go ahead and give you a shout out from New Caney Texas!
    Just wanted to tell you keep up the excellent job!

  42. Hello! I know this is somewhat off-topic but I needed to ask.
    Does building a well-established blog such as yours take a massive amount work?
    I am brand new to writing a blog however I do write in my journal on a daily basis.
    I’d like to start a blog so I can share my experience and thoughts online.
    Please let me know if you have any kind of ideas or tips for new aspiring bloggers.

  43. Sal says:

    In terms of understandinga adoption costs, there are two types of expenses of
    which parents should be made aware. Accidents are a fact of life and
    often we can only blame ourselves for the situation, but when another is responsible we will try to get compensation for
    our injuries and current situation with the assistance of a
    personal injury lawyer. Accidents happen when least expected and
    it can be hard to prevent them.

  44. Terrific work! This is the kind of info that should be shared across the internet. Disgrace on Google for now not positioning this publish higher! Come on over and talk over with my web site . Thank you =)
    beats pro sale

  45. Jerri says:

    For the reason that the admin of this web site is working, no doubt very quickly
    it will be famous, due to its feature contents.

  46. Sam says:

    I’m not sure exactly why but this website is loading incredibly slow for me.

    Is anyone else having this issue or is it a issue on my end?

    I’ll check back later and see if the problem still exists.

  47. s Spoken Word and her website offers products to help
    Christians use Bible scriptures in every day living finding the secret power of god.
    especially for warmer water baits and through into the autumn time.
    Three years ago, the visual difference between a
    console game and an online game was staggering.

  48. What’s Going down i am new to this, I stumbled upon this I have discovered It absolutely helpful and it has helped me
    out loads. I hope to give a contribution & help other users like its helped me.
    Good job.

  49. Ambit says:

    Howdy would you mind sharing which blog platform you’re working
    with? I’m going to start my own blog soon but I’m
    having a tough time making a decision between BlogEngine/Wordpress/B2evolution and Drupal.

    The reason I ask is because your design seems different then most blogs
    and I’m looking for something unique. P.S My apologies
    for being off-topic but I had to ask!

  50. Asking questions are in fact pleasant thing if you are not understanding anything entirely, except this post gives nice understanding yet.

  51. Wonderful verslaan ! Ik wil leerling , terwijl
    u uw site te wijzigen , hoe kan ik inschrijven voor een blog site?
    De rekening hielp me een acceptabele deal . Ik had een klein beetje kennis van dit
    uw uitzending voorzien briljant helder concept

  52. Well written articles like yours renews my faith in today’s writers.

    You’ve written information I can ultimately agree with and also use.
    Thanks for sharing.

  53. car says:

    To prevent frizz you must start at the very beginning, in
    the shower, then continue with drying, and styling.
    Astral Travel is similar, the difference being of course that it is a non-physical ‘place’ you are focussing in.

    To be safe, the Federal Aviation Authority advices passengers
    to count the rows between their seats and the exit as this will give them
    an idea of how far they are away.

  54. A good amount of tremendous advise on this website, truly want a steam
    shower unit in my own bathroom

  55. What’s most absurd is that punters typically have a long way toward determining who takes the battlefield.
    Before he had a home, Shankly wandered the streets of London hungry and lost.
    Other than that, be prepared for the ride of your life if
    you enjoy football, as you.

  56. A large amount of fabulous guidance on this site, truly
    want a steam shower unit within my bathroom

  57. Never ever heard of a steam shower enclosure until finally I discovered
    this incredible website, so thankful I did actually want
    one now and funds allowing will likely be purchasing one pretty

  58. Hey I am so thrilled I found your web site, I really found you by accident,
    while I was searching on Aol for something else,
    Anyhow I am here now and would just like to say many thanks for a fantastic post and a all round interesting blog (I also love the
    theme/design), I don’t have time to read through it all at the minute but I have
    saved it and also included your RSS feeds, so when I have time I will be
    back to read more, Please do keep up the fantastic

  59. Phones sometimes slip out of pockets and into puddles or sinks.
    They can also play video continuously for 10 hours;
    meanwhile, both i – Phones will also last for 40 hours during continuous audio playback.
    Sometimes there’s a dramatic leap, like the first i – Phone itself.

  60. acne scar removal

    subclass-and-override vs partial mocking vs refactoring | monkey island

  61. Had been actually trying to find just a typical shower enclosures during which I
    stumbled upon this web site, did not even know there were such a thing as a ‘steam shower enclosure’, wow,
    will probably just may have to buy one

  62. If you enjoyed this article, you also might like to read about NJ Carpet Cleaning.
    They can even be really time consuming to make use of if you’re cleaning a big area.
    This might help you mint a better price for the old ones.

  63. Minerva says:

    This article will assist the internet viewers for building up
    new blog or even a blog from start to end.

  64. I read this piece of writing completely concerning the comparison of hottest and preceding
    technologies, it’s remarkable article.

  65. No. I believe anyone should be able to wear whatever they expose appropriate.
    louis vuitton sito ufficiale collezione borse

  66. I do not leave a great deal of remarks, but i did some searching
    and wound up here subclass-and-override vs partial mocking
    vs refactoring | monkey island. And I actually do
    have a few questions for you if you tend not to mind.
    Is it simply me or does it look like a few of the remarks look as if they
    are coming from brain dead people? :-P And, if you are writing at additional
    sites, I would like to keep up with everything new you have to
    post. Could you make a list of every one of all your public pages like your
    twitter feed, Facebook page or linkedin profile?

  67. Elvis says:

    How far will she go to garner popularity from people. Seattle Seahawks quarterback Matt Hasselbeck, whose sister-in-law is ‘View’ host Elisabeth Hasselbeck, is one
    of the stars of the XXXChurch video. Farrah has always been a wildcard and many are fascinated with the fact that she even made a porno for any reason because Farrah has
    always seemed so prude while filming “Teen Mom” and wouldn’t even kiss her last boyfriend
    so fans are definitely wanting to know how
    someone with no knowledge of her thought about Farrah and whether or not she used protection.

  68. Just before that, lets think about what the whole point of character development is.
    If you’re very lucky your Halls may include the services of a maid
    to keep public areas and bathrooms clean and hygienic, or
    a catering service to ensure you can have a hot meal every night
    and won’t have to worry about surviving on beans on toast.

    Question 1: Are you comfortable to learn by reading
    instead of listening.

  69. Hi there, just wanted to tell you, I loved this post. It was
    helpful. Keep on posting!

  70. Antoinette says:

    Hello! This is kind of off topic but I need some guidance from an established blog.

    Is it very hard to set up your own blog? I’m not very techincal but I can figure things out pretty quick.
    I’m thinking about making my own but I’m not sure where to
    start. Do you have any points or suggestions? Appreciate it

  71. youtube.Com says:

    s Spoken Word and her website offers products to
    help Christians use Bible scriptures in every day living finding the secret power of god.
    ) In the eighties using crushed tiger nuts and various
    pellets soaked in tiger nut extract, powdered palatants
    and enhancers for example was a great edge for me.
    Three years ago, the visual difference between a console game and an online game was staggering.

  72. Hi, I do think this is a great site. I stumbledupon it ;
    ) I am going to revisit yet again since I book marked it.

    Money and freedom is the greatest way to change, may you be rich and continue to help others.

  73. Many phone carriers lock their phones to their network only.
    There are users of the Sims 3 forums who being allowed to post
    messages of hate on user pages, that function much like a
    Facebook profile page would, encouraging others to pick on and send
    like messages to other members of the community. After
    your sim has played with the imaginary friend
    doll for 24 hours, you can now age your toddler up into a child.

  74. cheap beats by dre studio headphones
    I need to to thank you for this wonderful read!!
    I absolutely loved every bit of it. I have got you
    book-marked to check out new stuff you post…

  75. That is a really good tip especially to those fresh to the blogosphere.
    Simple but very accurate info… Thank you for sharing this one.
    A must read post!

  76. Blog says:

    Very soon this site will be famous amid all blog visitors, due to it’s good posts

  77. Wonderful items from you, man. I have be aware your stuff previous to
    and you’re simply too wonderful. I really like
    what you’ve bought here, certainly like what you’re stating and the best
    way through which you are saying it. You’re making it entertaining and you continue to care for
    to stay it wise. I can’t wait to read much more from you.
    That is actually a wonderful web site.

  78. ideal weight says:

    Excellent, what a website it is! This weblog provides valuable data to us,
    keep it up.

  79. Hello to all, it’s truly a pleasant for me to pay
    a quick visit this web page, it consists of useful Information.

  80. Ios Cheat says:

    Тhe meeting quoted, “Establishment of a multi-agency NCCC for real time assessment of cyber security threat in the country and generation of an actionable report or alerts for proactive actions. On a personal level, I have looked at Facebook’s web-site interface from time-to-time and I could not tell of many changes, so something must be working well. If you’re an Oregon gun owner, click on the link to read the alert and take action.

  81. stomatolog says:

    Niezwykłe spojrzenie na myśl, każdy powinien przeczytać i zaznajomić się z motywem.

  82. My developer is trying to convince me to move to .net from PHP.
    I have always disliked the idea because of the costs. But he’s tryiong none the less.

    I’ve been using WordPress on a number of websites for about a year and am worried about switching to another platform.
    I have heard great things about Is there a way I can transfer all my
    wordpress content into it? Any kind of help would be really appreciated!

  83. Childhood sexual molestation, particularly by a known male, affects a feminine for the relaxation of her life.
    Warmth and moisture can trigger accidents to the skin surfaces.
    To be selfish at this stage can show harmful.

  84. Right now it seems like WordPress is the
    best blogging platform out there right now. (from what I’ve read) Is that what you’re using on your

  85. Thanks for your marvelous posting! I genuinely enjoyed reading it, you could be
    a great author. I will make sure to bookmark your blog and definitely will come back in the foreseeable future.
    I want to encourage you to definitely continue your great
    work, have a nice holiday weekend!

  86. Yes! Finally something about chiropractor.

  87. MD SEO says:

    Very good post. I certainly appreciate this website. Continue
    the good work!

  88. My brother suggested I might like this blog. He was totally
    right. This post actually made my day. You cann’t imagine simply how much time I had spent for this info!

  89. Hi, I do think this is a great blog. I stumbledupon it ;) I am going to return once again since i have book marked it.
    Money and freedom is the best way to change, may you
    be rich and continue to guide others.

  90. Hello, i read your blog occasionally and i
    own a similar one and i was just wondering if you get a lot of spam comments?
    If so how do you reduce it, any plugin or anything you can suggest?
    I get so much lately it’s driving me crazy so any assistance is very much appreciated.

  91. Hi, I would like to subscribe for this websitee to obtain most recent updates, therefore where can i
    do it please help.

  92. Greetings! Very useful advice in this particular post!
    It is the little changes that produce the most significant changes.

    Thanks for sharing!

  93. Shayne says:

    Aw, this was an exceptionally good post. Taking the time and acthal effort to produce
    a top notch article… but what ccan I say… I hesitate
    a lot and never seem to get anythijng done.

  94. of course like your web-site but you need to check the spelling on quite a few of your posts.
    Several of them are rife with spelling problems and I find it very bothersome to tell the reality on the other
    hand I will surely come again again.

  95. Good web site you have here.. It’s hard to find high quality writing like yours nowadays.
    I really appreciate people like you! Take care!!

  96. With havin so much written content do you
    ever run into any issues of plagorism or copyright infringement?

    My site has a lot of exclusive content I’ve either written myself or outsourced but
    it appears a lot of it is popping it up all over
    the internet without my agreement. Do you know any ways to
    help stop content from being stolen? I’d genuinely appreciate it.

  97. One particular host site for this fun, yet high stakes competition is Flash – GP.
    Although the wasp offers a little less personal DPS than wolves or raptors, it does offer a crucial raid debuff
    not often offered in every raid group. Muscatatuck County
    Park This winter the big hill at the top of the park has been the place to be if you had a sled or
    snowboard when it snowed, but this park has so much more to offer.

  98. It’s a pity you don’t have a donate button! I’d definitely donate
    to this brilliant blog! I suppose for now i’ll settle for book-marking and adding your
    RSS feed to my Google account. I look forward to brand new updates and
    will share this website with my Facebook group. Chat soon!

  99. Goodd site you’ve got here.. It’s difficult to find
    good quaity ԝriting like yߋurs nowadays. I honedstly appreciate people like you!
    Takee care!!

  100. crack now says:

    Tremendous things here. I am very happy to peer your article.

    Thank you so much and I’m taking a look ahead to touch you.
    Will you kindly drop me a mail?

  101. A foul smell from the fingernails also indicates a fungal infection. In reality, the best way to shield
    your self against STD is via abstinence. Great intercourse is poor sex
    with no adore.

  102. This web site certainly has all of the info I needed concerning this
    subject and didn’t know who to ask.

  103. Hello! Would you mind if I share your blog with my
    facebook group? There’s a lot of people that I think would really enjoy your content.
    Please let me know. Thank you

  104. Hi!
    Can everyone develop the exact same troubles
    as i complete? I cannot appear to any more meet our spouse inside bedroom.
    Immediately after acquiring three little ones I’ve
    got dropped the baby-belly extra fat although I can’t appear to re-tighten my
    own vagina. I have to continually carry out other activities to
    create him or her satisfied inside the bed room simply because genital sexual not excites them.
    Aid! I have started considering goods as well as methods to deal with this specific, may anyone recommend a fantastic a single?

    Appreciate it!

  105. Nickolas says:

    It’s genuinely very difficult in this busy life to listen news on Television, so I simply use
    internet for that purpose, and obtain the hottest

  106. The environment in which students participate in gym or
    physical education must be safe, secure and welcoming.
    “Improve Your Shooting, Dribbling & Passing Skills & Crush Anybody 1 On 1”.
    They are also a good choice for community hoops such as at a
    church, park, or school.

  107. abs dijeta says:

    Wow! Aftter all I got a web site from where
    I know how to truly obtwin valuable information regardingg
    my stuudy and knowledge.

  108. I have read so many articles or reviews about
    the blogger lovers however this paragraph is really a nice paragraph, keep it

  109. Hollie says:

    Hey there! This is my first visit to your
    blog! We are a team of volunteers and starting a new project in a community in the same
    niche. Your blog provided us valuable information to work on. You have done a extraordinary job!

  110. Hi there, its nice paragraph onn thee topic of media
    print, we all be familiar with media is a great source of data.

  111. cookout says:

    Hi! I know this is kind of off topic but I was wondering if you knew where I could locate
    a captcha plugin for my comment form? I’m using the same blog platform
    as yours and I’m having difficulty finding one? Thanks a lot!

  112. Heya! I just wanted to ask if you ever have any issues with hackers?
    My last blog (wordpress) was hacked and I ended up losing many months of hard work due to no data backup.
    Do you have any solutions to stop hackers?

  113. We’re a bunch of volungeers and starting a brand new scheme in our community.
    Your web site offered us with helpftul info to work on. You have peerformed an impressive job and oour whole community
    will probably be thankful too you.

  114. Viagra says:

    Men suffering from erectile dysfunction used to experience discomfort and sometimes embarrassment with the act of taking a
    pill just before any sexual activity. If you can change the way a person thinks,
    you can change the course of their entire life, says Dollar.
    But that, in itself, may present another problem – fake info and false reviews.

  115. Hello to all, as I am really eager of reading this website’s post to be updated daily.
    It carries nice material.

%d bloggers like this: