What's your unit of measure? 85

Posted by Brett Schuchert Fri, 20 Jul 2007 14:27:00 GMT

A few weeks back while teaching a class a student asked about refactoring. He we skeptical of the whole idea. “We don’t have time to write new functionality let alone fix code that ‘isn’t broken’.”

After some back-and-forth I asked him this question: What’s your unit of measure for estimating how long a refactoring is going to take?

In retrospect, this is nearly a nonsensical question.

He hemmed and hawed explaining why he could not refactor, why the code was the way it was, etc. After listening to this I then asked the question again: What’s your unit of measure? Is it Weeks, Days, Hours, Minutes?

It took several more rounds of this but I finally got an answer. He said “Days.”

I said something like “Ah-ha! That’s why you cannot refactor, you’re trying to do way too much.”

There are refactorings, and then there are Refactorings (notice the capital R for emphasis). As a matter of course, if I notice:
  • something that’s poorly named
  • a method that’s too long
  • obviously repeated code
  • etc.

I’ll fix it. The work takes a few seconds to minutes and then I’m off. Notice that the unit of measure for estimating isn’t relevant since it takes nearly no time.

Think of it this way. You’re on your way to the kitchen. You haven’t thoroughly cleaned your living room and there’s clutter on the coffee table. On your way to the kitchen, you pick up a few empty glasses and put them in the sink. You’ve just refactored your living room. If you do this every time you move, over time you’ll notice that your living room looks a whole lot better.

If you do this as a habit, your living room will stay cleaner longer – or get dirty slower.

On the other hand, there are those “big refactorings” that get placed on the back burner (backlog) and do not get done until it is impossible to move forward. That’s a whole other level of refactoring and maybe there should be another term for that kind of activity.

This is akin to dusting, vacuuming, mopping, the stuff some people only do when people are coming over. If you do the small stuff out of habit, you’ll be in a better place to do the big stuff when your parents call and say they’re coming over.

Refactoring, cleaning up as you go, is something that should not seem like a lot of work. It should be something to do out of habit. It’s not a separate activity from coding, it is coding – restructuring without changing functionality – organizing.

Think about it. As programmers, all we really do is organize stuff. We write code that stores information, processes it, allows users to type in stuff and get something done but ultimately we organize stuff.

So the next time you notice a badly-named method and you have the refactoring tools to support you, try a 30-second refactor. It will not seem like much but if you do it a few times every day and then you can get your team to start doing it, over time you’ll notice big improvements.

Just remember this:
  • Nothing + Nothing + Nothing eventually equals something…
Comments

Leave a response

  1. Avatar
    http://goldentoolbox.blogspot.com/ about 3 hours later:

    I find the time calculations made for the bigger refactorings are mostly flawed. To get a fair estimate you will have to take the time the actual refactoring takes and subtract the time it will save …

    I also often been given the argument that the code will need to be regression tested afterwards. This mostly however ignores the fact that the code will need to be regression tested before the next release anyway.

    The art is to make the right business case and present and argue it up the management structure.

  2. Avatar
    Jason 2 days later:

    The emphasis should definitely be on doing these daily as soon as they are discovered (or within a day). If you let a large mound of code build around something that is poorly named for example, it becomes closer to a Refactoring than a refactoring.

  3. Avatar
    Ansgar 3 days later:

    Brilliant!

    If you do this as a habit, your living room will stay cleaner longer – or get dirty slower.

    I think that by reversing the metaphor I’ve gained more profound insight on housekeeping than on programming. Now I can also view cleaning up the house as refactoring :-)

  4. Avatar
    Brett Schuchert 3 days later:

    It’s all the same, isn’t it?-)

    Depending on the environment and language, I might prefer housework to coding – though that’s a rare situation.

  5. Avatar
    Torbjörn Kalin 4 days later:

    If you have the right tool for the job, say a pair of jeans with a built-in vacuum cleaner, it is of course much easier to do the small clean-ups.

  6. Avatar
    Matt Cox 4 days later:

    Nice and solid advice.

  7. Avatar
    Kit 4 days later:

    One issue here is interrupting one’s train of thought. I would suggest if you see a need to refactor and you are in the middle of doing something else, stopping to refactor would probably make you less productive overall, than just leaving it and coming back to it when you are mentally free.

  8. Avatar
    Tim 4 days later:

    I am not sure. I have trouble maintaining my train of thought sometimes, too. What I find is that if I write something down I don’t have to remember it.

    I like to keep a list (usually on back of a 3×5 card or in a notebook) of the tests I want to write. This is a fairly common practice. When you think of a test you should write, you put it on the list, and when you write it or obviate it you scratch it off. I think this was a Beck practice, though I don’t recall where I heard it first.

    This way, I can maintain a state of productive work with refactoring and even across breaks. I always know where I am if I let the tests and the list keep me in line. I can go home and come back tomorrow.

    I think it is worth the time to develop your habits so that a refactoring (small r) is not worth skipping.

  9. Avatar
    serverdude 4 days later:

    I’m not sure, I like the allegory – even though it’s sound advice to keep your code (,office space, and living quarters) clean.

    In my mind the reverse of cleaning up would also be refactoring, that is – moving stuff onto the coffee table. There are no test, that when moving/removing entities from the system, i.e. cleaning up, the system is still working. E.g. if you put the remote control in the dish washer, the next person wanting to watch TV will find your refactoring actually broke the system.

    How does dust accumulate? Would that be code-rot? But code does not get worse over time of unmodified!

    In my mind refactoring has something to do with keeping functionality but changing the implementation or the interface. Sticking to the domestic vocabulary – you should be knocking down walls and building new ones while checking that the structure is still sound, and all the uses of all the affected rooms are still the same if not better. This would – at least to me – seem like a refactoring, while the Refactoring would be to demolish the entire house and build another.

  10. Avatar
    raveman 4 days later:

    i think people forget that not everybody is using TDD and sometime everybody makes small mistake, like write == instead of != and when you do not IDE refactoring you can introduce some bugs.

  11. Avatar
    Tim 4 days later:

    Serverdude,

    I’ve never had my dishes dirty themselves and migrate into the living room of their own accord. Mine are generally carried in by one of two boys living in my house, or less often by one or more of their parents. That’s not code rot, that mess accretion. Mess piles up because people pile up the mess in the course of doing other things, and don’t clean it up.

    Carrying the cups from the coffee table (and game console area) over to the kitchen is refactoring—paying off the “dish migration debt” that someone has accrued.

    I think that makes it a pretty good analogy. As analogies go.

  12. Avatar
    Mário Marinato 4 days later:

    Great text man. Could I translate it and post it on my blog?

    Brazilian greetings.

  13. Avatar
    serverdude 5 days later:

    Tim

    As I see the combat of left behind dirty dishes: You keep cleaning up the living room – well moving the obtrusive things to some other place – and the boys keeps on messing.

    That analogy would – to me – seem like developers battling in the version control system of where to put a resource and possibly a battle of you always cleaning others crud, which is certainly not what I’d recommend.

    Your dishes may not have dirtied themselves, but dust certainly accumulates without me having to do anything ;)

    Anyway .. I just don’t think that removing obsolete or unused resources and removing trailing whitespace really fits the term refactoring. And that’s the way I read your entry.

    It’s still a vital part of being a programmer though :)

  14. Avatar
    Nino 15 days later:

    Nice and cool

  15. Avatar
    Brett Schuchert about 1 month later:

    Mario,

    I though I responded in the affirmative about translating the text. Please feel free to do so.

    Where in Brazil? I’ve been to Brazil once for a 9-day vacation. Simply a breathtaking country.

    Brett

  16. Avatar
    Mário Marinato 2 months later:

    Hello, Brett

    I’m glad you agree to have the text translated into Portuguese. I’ll work on that today and inform you when I publish it.

    I live in the state of Rio de Janeiro, but not on the city of Rio de Janeiro. I live in a city that’s two hours away from Rio de Janeiro city. You can see some photos at http://www.flickr.com/photos/osarcofago/

    Do you have an email for direct contact? Mine is mariomarinato [at] gmail [dot] com

  17. Avatar
     TV Wall brackets over 3 years later:

    The info that you have given in this blog is really impressive..Iam very happy to visit your blog..

  18. Avatar
    bag manufacturer over 3 years later:

    ent asked about refactoring. He we skeptical of the whole idea. “We don’t have

  19. Avatar
    high pr text links over 3 years later:

    This was exactly what i was searching for. Have been fighting for a while to do this, thanks for have posted.

  20. Avatar
    Protein Rich Foods over 3 years later:

    cool with that

  21. Avatar
    Pandora over 3 years later:

    I don’t recommend that on any project that needs to work, but I also don’t recommend using a real product to learn your tools.

  22. Avatar
    http://www.blacktowhiteiphone4.com over 3 years later:

    It’s a great post. But i would like to know more about the iphone 4 white information.

  23. Avatar
    Silicone Molding over 3 years later:

    a href=”http://www.taiwanmoldmaker.com/service-mold-maker.html”>Mold making is the core business of Intertech (Taiwan). With world level technology, Intertech enjoys a very good reputation for making Injection Mold and Plastic Moldsfor their worldwide customers.

  24. Avatar
    Bingo over 4 years later:

    Such an amazing article! I really enjoy reading it, very good insights, the article is very ell-said. A thumbs up!

    Regards Chain

  25. Avatar
    Deal or no Deal over 4 years later:

    Thanks a million and please keep up the fabulous work. Regards Milerrey

  26. Avatar
    ossf over 4 years later:

    Dude. I am not much into reading, but somehow I got to read lots of articles on your blog. It’s amazing how interesting it is for me to visit you very often.

  27. Avatar
    willamstelin@gmail.com over 4 years later:

    I am totally agree with this information. As I am also a programmer. I also write the code that store the information in a database and after processing it all user can get very useful stuff. All in all there may come time consuming but if we follow the given estimation we can surly notice big improvements. weightloss for women

  28. Avatar
    Criminal Records over 4 years later:

    Refactoring, cleaning up as you go, is something that should not seem like a lot of work. It should be something to do out of habit. It’s not a separate activity from coding, it is coding – restructuring without changing functionality – organizing.

  29. Avatar
    Jones over 4 years later:

    glad to see you!

  30. Avatar
    mosic over 4 years later:

    glad to see you!

  31. Avatar
    Matteo over 4 years later:

    glad

  32. Avatar
    Juicy Couture Charming bag over 4 years later:

    I have read a few of the articles on your website now, and I really like your style of blogging

  33. Avatar
    Backup iPhone SMS over 4 years later:

    Thanks for shareing! I agree with you. The artical improve me so much! I will come here frequently.

  34. Avatar
    iPhone SMS to Mac Backup over 4 years later:

    I really like this essay. Thank you for writing it so seriously.

  35. Avatar
    Designer Sunglasses over 4 years later:

    Buy $10 Replica Designer Sunglasses

  36. Avatar
    Real Quick review over 4 years later:

    i prefer the standard unit of measurements like inches, cm, kilograms, lbs…

  37. Avatar
    jaychouchou over 4 years later:

    To be, or not to be- that is a question.Whether ipad bag tis nobler in the mind to suffer The slings and Game Controllers arrows of outrageous fortune Or to take arms against a sea of troubles, And USB Gadgets by opposing end them.To be, or not to be- that is a question.Whether ipad bag tis nobler in the mind to suffer The slings and Game Controllers arrows of outrageous fortune Or to take arms against a sea of troubles, And USB Gadgets by opposing end them.

  38. Avatar
    Designer Bags Online over 4 years later:

    I prefer to read this kind of stuff. The quality of content is fine and the conclusion is good. Thanks for the post.

  39. Avatar
    http://www.selljuicybag.com over 4 years later:

    I like here very much.Thanks!

  40. Avatar
    damper over 4 years later:

    Our company is engaged in the professional manufacturer of damper, air cylinder, oil cylinder, and hydraulic station. The company has many year’s production experience and strong technical power.

  41. Avatar
    okey oyunu oyna over 4 years later:

    very good article…

    internette görüntülü olarak okey oyunu oyna, gerçek kisilerle tanis, turnuva heyecanini yasa.

  42. Avatar
    Cheap Designer Bags Online over 4 years later:

    Big Thanks for the info… Added to bookmarks permanently

    I usually don’t post in Blogs but your blog forced me to, amazing work.. beautiful …

  43. Avatar
    tiffany antique bracelets over 4 years later:

    I am in support of wonderland, this project is seeing very good fame and should be continued. I’m up for moral support and would do my part to promote this wonderful project.

  44. Avatar
    Jewellery over 4 years later:

    Online UK costume and fashion jewellery shop with,

  45. Avatar
    mac cosmetics over 4 years later:

    It is my great pleasure to visit your website and to enjoy your excellent post here. I like that very much. That is very kind of you to do this for us. Thank you very much. If you are looking for mac cosmetics , here is the right place. We are engage in mac comestic business.http://www.pickmaccosmetics.com

  46. Avatar
    gucci shoeslv shoes over 4 years later:

    thanks your sharing.

  47. Avatar
    cheap jordans for sale over 4 years later:

    i don’t know.

  48. Avatar
    cheap gucci bags for sale over 4 years later:

    You have a cool web site. It is almost the first time I encounter something like that. In fact I’m thinking of creating my own one.Google’s results pages are simple, and that’s why they work. Simple.So thanks for it.

  49. Avatar
    potty training girls tips over 4 years later:

    I am glad you have posted information on this topic.I hope you will keep this blog up to date with more information

    Big Thanks for the article RSS feed added

  50. Avatar
    beats by dre store over 4 years later:

    hope you will keep this blog up to date with more informationhigh quality headphones new design headphones

  51. Avatar
    T-shirt stores over 4 years later:

    HuangXiao surplus think gymnastics and fashion in her speaking complement each other, gymnastics is full of petr cech itself design changes T-shirt stores and inspiration, so she’s graduation work also is a gymnastics, and he came to different parts of the world DuoNian in gymnastics competition, but also to her to experience different cultures, and expand the horizons of their own design.

    As Hong Kong the highest level of women’s gymnastics athlete, in addition to the Olympic Games this year, at the age of 24 HuangXiao surplus what game in, and that is also graduated from the www.t-shirtsgo.com/">cheap t-shirts university last year of the last time she in the world university games. Don’t say don’t know, original HuangXiao surplus last year in the Hong Kong polytechnic university graduate, major is fashion design, although after the graduation HuangXiao surplus temporarily when a professional athlete, but she told the reporter, you actually or want to be professing clothing designers, so is looking for work. In my spare time, she will also test NiuDao, such as design some to gymnastics as the theme of the T-shirt, this www.t-shirtsgo.com/">wholesale t-shirts year’s gymnastics championship will be held in Hong Kong, she is involved in the game T-shirt design, very happy.

  52. Avatar
    T-shirt stores over 4 years later:

    HuangXiao surplus think gymnastics and fashion in her speaking complement each other, gymnastics is full of petr cech itself design changes T-shirt stores and inspiration, so she’s graduation work also is a gymnastics, and he came to different parts of the world DuoNian in gymnastics competition, but also to her to experience different cultures, and expand the horizons of their own design.

    As Hong Kong the highest level of women’s gymnastics athlete, in addition to the Olympic Games this year, at the age of 24 HuangXiao surplus what game in, and that is also graduated from the www.t-shirtsgo.com/">cheap t-shirts university last year of the last time she in the world university games. Don’t say don’t know, original HuangXiao surplus last year in the Hong Kong polytechnic university graduate, major is fashion design, although after the graduation HuangXiao surplus temporarily when a professional athlete, but she told the reporter, you actually or want to be professing clothing designers, so is looking for work. In my spare time, she will also test NiuDao, such as design some to gymnastics as the theme of the T-shirt, this www.t-shirtsgo.com/">wholesale t-shirts year’s gymnastics championship will be held in Hong Kong, she is involved in the game T-shirt design, very happy.

  53. Avatar
    bikini shop over 4 years later:

    Before 1946, the bikini is just a place name-President Truman www.top-bikini.com/">bikini shop approved for nuclear blasts the name of the island. The one in the first half, only to women in LiLing, flat foot of wrapped tightly of the body “swimsuit” to the sea swimming, beach image is of a piece of black. Marshall islands in the bikini atomic explosion of after day 18, the French luis DE lille in www.top-bikini.com/">bikini sale the July 18, 1946 in Paris launched a new three pieces of cloth and by four tape composed of a swimsuit. The world body area of the minimum cover swimsuit, through the bra hold breast, back in addition to the rope www.top-bikini.com/">micro bikinis almost stark naked, triangle trousers cha hip to try to carry on, the most greatly to show the hip hip legs. It is simple, small and exquisite form, only with less than 30 inches cloth, roll into a group can be loaded into a www.top-bikini.com/">bikini bottom matchbox. Before that, a swimsuit or conservative, covered most of the body. And lille’s design is on most of the abdomen bare. The swimsuit chooses is printed with newspaper content edition piece of fabric, smart designer www.top-bikini.com/">bikini top suggested that he bold design will be in the world newspaper requires a large layout.

  54. Avatar
    cheap monclers over 4 years later:

    Foreign trade cheap monclers not only in.You deserve.ZLF http://www.cheapmonclersweaters2.com/ http://www.progoldaudiophileinearspeakers.com/ http://www.timberlandshoeshua.com/ http://www.monsterearphone.org/ http://www.coolearphone.com/

  55. Avatar
    cheap monclers over 4 years later:

    Foreign trade cheap monclers not only in.You deserve.ZLF http://www.cheapmonclersweaters2.com/ http://www.progoldaudiophileinearspeakers.com/ http://www.timberlandshoeshua.com/ http://www.monsterearphone.org/ http://www.coolearphone.com/

  56. Avatar
    Uniformes De Fútbol over 4 years later:

    I really like your article. Please keep on writing excellent posts. To find out more please go to http://baratasfutbolcamiseta.es/ http://baratasfutbolcamiseta.es/category.php?id=9 http://baratasfutbolcamiseta.es/goods.php?id=76 http://www.camisetas-de-futbol.es/ http://www.camisetas-de-futbol.es/category-66-b0-FIFA+del+Copa+del+Mundo.html http://www.camisetas-de-futbol.es/goods-4080-10+11+Holland+Tercel+Blanco+camiseta+del+futbol.html http://www.camisetasfutbolchina.es/ http://www.camisetasfutbolchina.es/category-122-b0-Real+Madrid.html http://www.camisetasfutbolchina.es/goods-4605-11+12+England+Titular+Blando+camiseta+del+futbol.html

  57. Avatar
    Longchamp outlet over 4 years later:

    would say that i love this website its blog is very interesting

    Not too many people would actually think about this the way you just did.

  58. Avatar
    shop soccer jerseys over 4 years later:

    I think youve made some truly interesting points. Not too many people would actually think about this the way you just did. Im really impressed that theres so much about this subject thats been uncovered and you did it so well, with so much class. Good one you, man! Really great stuff here.

    very useful the info you gave, especially for people who a looking to do what to do with their Flash gallery.

  59. Avatar
    robert.robot369@gmail.com over 4 years later:

    Great posts are visible in this blog that to sharing the nice info in this blog. The total info is visible in this blog and the nice technology is visible in this website. I am searching the nice service in this website and the nice technology in this blog Coroner Job Description|Medical Technologist Job Description|Corrections Officer Job Description|Financial Analyst Job Description

  60. Avatar
    how to become over 4 years later:

    This How To Become A Yoga Instructor is very much How To Become Rich At Young Age happy for using How To Become An Air Marshal the nice technology How To Become A Private Detective in this How To Become A CSI blog and using the great How To Become An X-RAY TECHNICIAN services in this blog

  61. Avatar
    how to become over 4 years later:

    How A Bill Becomes The Law Steps I am very How To Become A PI much happy for using the How To Become An Organ Donor great services in this blog How To Become Bonded This is really admired the nice How To Become Ordained info is visible in How To Become An Investment Banker this blog and

  62. Avatar
    hub over 4 years later:

    Thanks How Long Does It Take To Become An EMT a lot for How To Become A Permanent Resident Of USA providing the nice How To Become A Retailer info is visible in this blog and using the great technology

  63. Avatar
    luxe boots outlet over 4 years later:

    The best advice is Australia Luxe Collective Bedouin Tall Lace-Up Boot In Black to start your search early. Especially during the high season of summer, you need to book well in Australia Luxe Collective Nordic Angel Light Tall Fox Fur Boots Brown advance to get exactly what you want. An early search on the Internet will give you a wide choice in terms of location, price and amenities. You may also want to talk to a travel agent; many times agents Australia Luxe Collective Short Nordic Angel Boot Chestnut get packages of airfare/hotel rates that can’t be beat.

  64. Avatar
    wedding dresses over 4 years later:

    Great point!

  65. Avatar
    CASINO ROYALE TUXEDO over 4 years later:

    This is very much satisfied by the great info is visible in this blog that to using the great services in this blog. Thanks a lot for providing the great info is visible in this blog and utilize the great technology.

  66. Avatar
    CASINOS-RATINGS over 4 years later:

    I really appreciate for the great info is visible in this blog that to using the great technology in this blog. Thanks a lot for providing the great info is visible in this blog that to great technology in this blog.

  67. Avatar
    online games casino guide over 4 years later:

    This is very much happy for using the great technology in this website that to using the great services in this blog. Thanks a lot for providing the great info is visible in this blog that to sharing the great info in this blog.

  68. Avatar
    online poker slots info over 4 years later:

    This is really admired for the amazing info is visible in this blog and using the great services in this blog. Thanks a lot for providing the great info is visible in this blog and sharing the great technology in this blog.

  69. Avatar
    129 casino reviews over 4 years later:

    I had really admired for the great info is visible in this blog that to sharing the great technology in this blog. Thanks a lot for providing the great info is visible in this blog.

  70. Avatar
    tory burch outlet online over 4 years later:

    Thank you for using the time and effort to write something which is invokinThank you for using the time and effort to write something so interesting.

    This blog is really cool! How can I make one like this !

    Every time I visit this page there’s a new challenge and improved should study on.

  71. Avatar
    casque dr dre over 4 years later:

    casque dr dre cher casque beats by dre beats casque distributors casque beats by dre online beats by dr dre casque

    nouveau style dr dre beats cher nouveau arriver dr dre beats beats by dr dre spiderman casque casque spiderman beats by dre

    beats by dr dre superman casque superman beats by dre casque

    casque chrome colorware casque beats by dre chrome colorware

    beats by dr dre beats by dre sale cheap beats by dre beats by dre store high quality headphones new design headphones discount beats by dre cheap beats by dre beats by dre canada monster beats by dre free shipping dr dre beats monster beats online

  72. Avatar
    christian louboutin over 4 years later:

    Christian Louboutin Rolando Hidden-Platform Pumps Golden is a fashion statement – that’s sexy, it makes you look longer highlight, and it highlights the curves in the woman body and makes the body look more elegant and thinner without any diet.

    ?Brand: Christian Louboutin ?Material: Golden leather ?Specialty: Signature red sole ?Color: Golden ?Heel height: Approximately 130mm/ 5.2 inches high and a concealed 20mm/ 1 inch platform ?Condition: Brand New in box with dust bags & Original Box

    Fashion, delicate, luxurious Christian louboutins shoes on sale, one of its series is Christian Louboutin Rolando Pumps, is urbanism collocation. This Christian louboutins shoes design makes people new and refreshing. Red soles shoes is personality, your charm will be wonderful performance.

  73. Avatar
    Abercrombie & Fitch over 4 years later:

    Many of the Tods shoes sale this season are to die for Tods Sneakers Men and you sure would want to get your hands on them and Tods Baulet D Bag Light Blue be one of the few who can walk up and down the busy streets Tods Moccasin Gommino Tassel with one around your arm. Some of the Tods Ankle Boots Men are already Tods Cap-Toe Flats 30% off and maybe even lower so you can update your closet with Tods Womens Moccasin Shoes some of the pieces that you failed to get last season.

  74. Avatar
    manitobah mukluks boots over 4 years later:

    The Australia Luxe Angel Distressed Boots, furry boot style is one that’s commonplace in manitobah mukluks suede mukluk boots many stores around the world from brands like UGG and EMU Luxe Bedouin Short Boots . They’re very popular but have no place in the world up firming Manitobah boots and truly comfortable footwear. So when you’re too busy to work Manitobah Mukluks Winter Boots out but don’t want to sacrifice your furry boot style, you can get Manitobah Mukluks Snow Boots the Luxe Bedouin Boots Tall Grey and enjoy a bun and leg firming experience without setting foot in the gym.

  75. Avatar
    [url=http://www.oakleysunglasses-discount.net/][b]fake oakley sunglasses[/b][/url] over 4 years later:

    The world’s Fake oakley sunglasses largest glasses design, manufacturing, wholesale and retail Luxottica group-in the mainland of China, a wholly fake oakley sunglasses owned subsidiary LiuXun ladder card (Shanghai) trading Co., LTD, April 8,, in hangzhou, two flagship store island glasses fake oakley sunglasses

  76. Avatar
    Brisbane Limo Hire over 4 years later:

    I had really admired for the great info is visible in this blog that to sharing the great technology in this blog. Brisbane Limo Hire

  77. Avatar
    Limos Brisbane over 4 years later:

    I had really admired for the great info is visible in this blog that to sharing the great technology in this blog.Limos Brisbane

  78. Avatar
    iPhone contacts backup over 4 years later:

    Get to know about C# and C++. In fact, I find there is no much difference between the two. However, If we want to do much better. I need work hard.

  79. Avatar
    http://www.camisetasfutbolchina.es/ over 5 years later:

    Todas Camisetas de La Liga Uniformes De Fútbol Española.más vendidos Camiseta de La Liga Española Camisetas De La Liga, Liga Española Uniformes de Fútbol,la nueva camiseta de Liga Española Camisetas Real Madrid Camisetas de Clubes son de primera Real Madrid Camiseta Del Futbol calidad.Eligió nuerstras camiseta.

  80. Avatar
    louboutin sales over 5 years later:

    What’s your unit of measure? 79 hoo,good article!!I like the post!35

  81. Avatar
    bladeless fans over 5 years later:

    What’s your unit of measure? 80 good post173

  82. Avatar
    hermes kelly bracelet over 5 years later:

    In previous times, purses have been linked with women only due to their designs, which mainly focus on women?

  83. Avatar
    hermes birkin ostrich price over 5 years later:

    While this surely won’t come as a surprise to you, there are many different types of motorcycle luggage?

  84. Avatar
    hermes red crocodile birkin bag over 5 years later:

    Among the most popular promotional products that are often used are bags?

  85. Avatar
    bag hardware over 5 years later:

    Promotional gifts, business gifts and promotional products, are merchandise items that are recognized with a symbol and are applied in communication and advertising programs?

Comments