Developers are naturally aware of wasteful code, whether it’s writing the same thing many times over with only subtle differences or creating entirely new templates for a minor change in the order of page elements. I start every new project with a determined mindset of “I’m going to write the cleanest code I’ve ever written,” but even with the best intentions, I often find myself straying back to the aforementioned development sins. The culprit is nearly always a lack of modularity.
The Virtues of a System of Parts
I can best describe modularity as a system of interchangeable, reusable parts – the key words being “system” and “parts” (or modules). Many of the greatest products, machines and innovations are modular – ranging from Lego to the International Space Station. Modular products and machines are known for customisability, versatility, durability and long lastingness.
As developers, we should also aim for our code to be long-lasting and customisable, and importantly – economic. Economic code comes from reusability which translates to less code written per project. Durable code comes from independently functioning parts that can be added or removed without impairing the overall system, which translates to maintainability and extensibility.
Modularity is by no means a new concept in the world of programming. In his book Eloquent JavaScript, Marijn Haverbeke writes:
“In small programs, organisation rarely becomes a problem. As a program grows, however, it can reach a size where its structure and interpretation become hard to keep track of. Easily enough, such a program starts to look like a bowl of spaghetti, an amorphous mass in which everything seems to be connected to everything else. When structuring a program, we do two things. We separate it into smaller parts, called modules, each of which has a specific role, and we specify the relations between these parts.”
It is perhaps however, a new concept in the web design industry, particularly as it applies to content-driven websites. While many of us are aware of these terms – reusability, maintainability, and extensibility – the mental effort required to conceive and plan such a system (before even writing a line of code) can be daunting when compared with a more loose development approach where we let things take their own course. Particularly within the time and budget constraints of a typical client project. We may start with a rough concept of a system, and hope that the rest of the system will evolve and become clear as we progress through the project. In my experience however, this rarely produces good results.
Roadblocks to Modular Development
There may also be other external factors in the failure of an effective modular system. Chiefly, the idea of the “page template” and how that manifests itself in the design process and other sub-systems we employ. For example, as developers, we may want to write modular code, but if our designer is thinking and designing in “page templates,” then our ability to modularise design elements can only go so far and the full potential of the system will not be realised. Similarly, when we integrate our code with a content management system, we are often forced back into the realm of the page template again. WordPress for example, out of the box, is by its nature concerned with pages and templates. As Mark Boulton says:
“Huge swathes of the CMS industry are out of touch with how people are making and editing content.”
Another obstacle to modular web development that I often come across is the aftermath of “designing in the browser.” While this can be a highly effective way to prototype a site (and a lot of fun) the trial-and-error nature of the design process will undoubtedly yield inconsistent and wasteful code, that in an ideal world should be audited and rewritten before being deployed.
Drafting a Modular System
At the end of last year, several of us at Barrel set about drafting an all-encompassing modular methodology and workflow that would extend from UX and visual design, to development and content management. For the system to work we soon realised, all disciplines of the project team must be in the same mindset, and all of the sub-systems employed – from the design mockups to the architecture of the CMS – must be framed around the unit of the module.
For the system to work, all disciplines of the project team must be in the same mindset, and all of the sub-systems employed – from the design mockups to the architecture of the CMS – must be framed around the unit of the module.
The primary advantages of such a methodology, we anticipated, would be huge gains in project development time, power to the end-user (the client) in terms of flexible content management, and of course, ease of maintenance and scalability. We also expected that certain aspects of the process may be more time intensive, at least to begin with. Visual design for example, might require the designer to put an equal amount of effort into creating a robust design system. While we couldn’t be sure until we tried it out, we knew it would require a huge reconceptualisation of the way we work.
While my UX and design colleagues worked to devise a design system of “components”, “modules” and “containers”, each relating to a flexible, content-agnostic design element, I concerned myself with the HTML, CSS, JavaScript, and PHP of these elements (our back-end was to be a heavily customised WordPress setup), and a system which would allow an end-user to join them together in any order or combination – just like Lego. In modular development, the system should be thought of as a specification, or set or rules, detailing how our modules are organised and interact with each other, how our file structure is organised, and how all parts of the system should be named for semantics and consistency.
As part of another initiative at Barrel, the development team had also been reviewing “best practices” for the various facets of the development process. Several technologies and patterns we agreed to evangelise included CSS pre-processors, Grunt.js, object-oriented JavaScript, and mobile-first stylesheets – all powerful tools for scalable, modular code. Combined with the power of the “Flexible Content Field” for Elliot Condon’s widely-used Advanced Custom Fields plugin for WordPress, we were able to forge ahead with the creation of a holistic modular system for content-driven websites.
Lessons Learned
Months later with several modular projects under our belt, the system (while still in its infancy) has exceeded our expectations. We are finally free from the constraints of the “page template” and all the wasteful, duplicated code that comes with it. The CMS itself has become our new prototyping tool. When we need to add a new feature to a site, we simply design and build a new module and drop it in. It then becomes available code to all other sites built on the system, should we need it for another project. We now have a library of modules that grows from project to project.
When we need to add a new feature to a site, we simply design and build a new module and drop it in.
With the time gained in cutting out much of the back-end and CMS development process, we are able to focus our attention more than ever to the front-end and admin user-experience. Our training and QA processes have also become much more standardised from project to project. No need to re-invent the wheel.
We also encountered a few surprises along the way. While reusable code may be economic in its ability to reduce new code written per project, it may also be more verbose when viewed as a single unit. Take for example the JavaScript for an interactive UI element. For this code to be truly modular, it must have as few dependencies as possible and should hypothetically be able to cope with an infinite number of instances in the same session, all functioning in isolation. More complex object-orientated architectures are therefore required, and often the code written may be twice the size of what could have been a few functions and variables in a less modular project. In some ways, the process of structuring an object in JavaScript, or a class in PHP, is a microcosm of designing a larger modular system.
At the outset, we believed that going modular in the CMS would require an all or nothing parting from template-based thinking. This wasn’t necessarily the case. While we went fully-modular for our WordPress “pages,” we found that many content types required a stricter template-based approach, or a hybrid of the two. Take for example a team profile. Users expect consistency when going from one profile to the next (e.g. bio, job title, photo), so the freedom of a modular approach served no purpose here. For something like a blog post however, more of a hybrid was appropriate. An image, excerpt and title might be mandatory, but within the content of the post, the user might pick from text, image and video modules in any order to construct engaging content.
Personally, the shift to modular design and development has been an exciting journey that has challenged me at both ends of the spectrum. High-level architecture on one hand, and low-level parts, mechanics and functionality on the other. The work has been educational and eye-opening. The principles of good architecture it seems, are universal. What applies to the smallest function or loop also applies to the largest structures and designs. The more robust the parts, the more robust the system. And while the system may be robust, it is not set in stone by any means. It will continually evolve as new projects challenge it in different ways. Because of its modularity, it is one system that is assured a long life span.
Illustration by Angel Ng
Pingback: payday loans vancouver
Pingback: direct what are payday loans lender
Pingback: drugrehabcentershotline.com heroin addiction treatment
Pingback: max
Pingback: Eduardo
Pingback: joel
Pingback: Curtis
Pingback: Kirk
Pingback: Peter
Pingback: Fernando
Pingback: joshua
Pingback: Jaime
Pingback: Louis
Pingback: Bradley
Pingback: gordon
Pingback: Kirk
Pingback: kyle
Pingback: frank
Pingback: Julius
Pingback: luther
Pingback: Ted
Pingback: Guy
Pingback: Louis
Pingback: Julian
Pingback: Carlos
Pingback: Homer
Pingback: felix
Pingback: brett
Pingback: Neil
Pingback: Charles
Pingback: donald
Pingback: ron
Pingback: Ronald
Pingback: Henry
Pingback: julio
Pingback: brett
Pingback: byron
Pingback: jonathan
Pingback: trevor
Pingback: arnold
Pingback: Todd
Pingback: travis
Pingback: dennis
Pingback: neil
Pingback: Eric
Pingback: harold
Pingback: Ryan
Pingback: salvador
Pingback: arturo
Pingback: wesley
Pingback: Jeffrey
Pingback: nick
Pingback: Pedro
Pingback: jaime
Pingback: billy
Pingback: Dan
Pingback: Willard
Pingback: ernesto
Pingback: alfred
Pingback: bob
Pingback: anthony
Pingback: Kirk
Pingback: perry
Pingback: ryan
Pingback: Ross
Pingback: ricky
Pingback: randall
Pingback: louis
Pingback: Jamie
Pingback: Marcus
Pingback: Mario
Pingback: edward
Pingback: nelson
Pingback: calvin
Pingback: Michael
Pingback: robert
Pingback: Ricardo
Pingback: rick
Pingback: derek
Pingback: Reginald
Pingback: Eugene
Pingback: Vernon
Pingback: trevor
Pingback: Albert
Pingback: Maurice
Pingback: christopher
Pingback: mario
Pingback: mitchell
Pingback: Mathew
Pingback: lawrence
Pingback: jeffrey
Pingback: sidney
Pingback: nelson
Pingback: travis
Pingback: Arturo
Pingback: eddie
Pingback: max
Pingback: joshua
Pingback: oscar
Pingback: Isaac
Pingback: ross
Pingback: travis
Pingback: Joe
Pingback: rodney
Pingback: Russell
Pingback: michael
Pingback: jack
Pingback: leslie
Pingback: Bill
Pingback: Sam
Pingback: karl
Pingback: Jerry
Pingback: philip
Pingback: lynn
Pingback: William
Pingback: enrique
Pingback: Marshall
Pingback: Lloyd
Pingback: curtis
Pingback: chester
Pingback: cameron
Pingback: floyd
Pingback: Jorge
Pingback: Victor
Pingback: Clarence
Pingback: Derek
Pingback: franklin
Pingback: Perry
Pingback: arthur
Pingback: theodore
Pingback: lance
Pingback: jorge
Pingback: Darrell
Pingback: Joe
Pingback: Julio
Pingback: ronald
Pingback: Herman
Pingback: willie
Pingback: Orlando
Pingback: Dale
Pingback: Cody
Pingback: everett
Pingback: todd
Pingback: benjamin
Pingback: Roberto
Pingback: benjamin
Pingback: lewis
Pingback: jim
Pingback: Alvin
Pingback: Scott
Pingback: tyrone
Pingback: Gerard
Pingback: Gilbert
Pingback: ernest
Pingback: Randy
Pingback: Kirk
Pingback: Darrell
Pingback: Armando
Pingback: Kirk
Pingback: clifford
Pingback: jim
Pingback: barry
Pingback: Henry
Pingback: leslie
Pingback: Keith
Pingback: seth
Pingback: leon
Pingback: guy
Pingback: kyle
Pingback: Travis
Pingback: william
Pingback: glenn
Pingback: edwin
Pingback: rene
Pingback: Bobby
Pingback: Melvin
Pingback: Oscar
Pingback: Keith
Pingback: Arthur
Pingback: Brian
Pingback: pedro
Pingback: aaron
Pingback: bill
Pingback: wendell
Pingback: Alfred
Pingback: frank
Pingback: luis
Pingback: Leslie
Pingback: Nicholas
Pingback: jimmie
Pingback: Rafael
Pingback: bernard
Pingback: shawn
Pingback: Tyrone
Pingback: John
Pingback: Edward
Pingback: Ruben
Pingback: doug
Pingback: Angelo
Pingback: trevor
Pingback: melvin
Pingback: mathew
Pingback: Cory
Pingback: Stanley
Pingback: ronnie
Pingback: stuart
Pingback: donald
Pingback: kenny
Pingback: Bryan
Pingback: Brett
Pingback: Roberto
Pingback: larry
Pingback: arnold
Pingback: mario
Pingback: cecil
Pingback: Leonard
Pingback: Chester
Pingback: clifton
Pingback: Kurt
Pingback: wade
Pingback: Stanley
Pingback: Gilbert
Pingback: Charlie
Pingback: stanley
Pingback: melvin
Pingback: Marc
Pingback: arturo
Pingback: oscar
Pingback: gordon
Pingback: Gregory
Pingback: william
Pingback: Miguel
Pingback: Cody
Pingback: Arthur
Pingback: randall
Pingback: Adam
Pingback: Ernest
Pingback: Ronald
Pingback: evan
Pingback: joshua
Pingback: Stephen
Pingback: Mitchell
Pingback: ricardo
Pingback: marion
Pingback: troy
Pingback: Perry
Pingback: steven
Pingback: Jesus
Pingback: nelson
Pingback: john
Pingback: ryan
Pingback: lewis
Pingback: Wade
Pingback: Ruben
Pingback: Roland
Pingback: wallace
Pingback: Russell
Pingback: dave
Pingback: nathaniel
Pingback: Ronald
Pingback: Paul
Pingback: Paul
Pingback: Kurt
Pingback: Lloyd
Pingback: Arturo
Pingback: samuel
Pingback: jessie
Pingback: Russell
Pingback: kent
Pingback: Jackie
Pingback: cory
Pingback: shaun
Pingback: alexander
Pingback: Joel
Pingback: charles
Pingback: gabriel
Pingback: jessie
Pingback: evan
Pingback: Danny
Pingback: george
Pingback: Leslie
Pingback: frank
Pingback: jimmy
Pingback: dean
Pingback: michael
Pingback: Sam
Pingback: Jimmie
Pingback: Allan
Pingback: Gordon
Pingback: stephen
Pingback: Jessie
Pingback: Hugh
Pingback: guy
Pingback: Allen
Pingback: jimmie
Pingback: randy
Pingback: Lance
Pingback: curtis
Pingback: willie
Pingback: Ernesto
Pingback: herman
Pingback: lewis
Pingback: russell
Pingback: Willard
Pingback: ricardo
Pingback: Rex
Pingback: Todd
Pingback: travis
Pingback: Sean
Pingback: floyd
Pingback: Chad
Pingback: Neil
Pingback: ronald
Pingback: Christian
Pingback: clarence
Pingback: Ernest
Pingback: Marvin
Pingback: Gerald
Pingback: chris
Pingback: terrance
Pingback: chester
Pingback: oliver
Pingback: Leslie
Pingback: alejandro
Pingback: Dwight
Pingback: Harold
Pingback: Joey
Pingback: Jon
Pingback: Ivan
Pingback: ian
Pingback: Alfred
Pingback: Philip
Pingback: lee
Pingback: Angel
Pingback: Floyd
Pingback: Raul
Pingback: Billy
Pingback: Terrence
Pingback: Paul
Pingback: barry
Pingback: Tracy
Pingback: miguel
Pingback: louis
Pingback: Lawrence
Pingback: alejandro
Pingback: rex
Pingback: Michael
Pingback: Stanley
Pingback: carlton
Pingback: bobby
Pingback: marion
Pingback: rodney
Pingback: francisco
Pingback: Tyrone
Pingback: alexander
Pingback: alfredo
Pingback: kurt
Pingback: tom
Pingback: Angelo
Pingback: Kenny
Pingback: Felix
Pingback: max
Pingback: Wendell
Pingback: roger
Pingback: Jimmy
Pingback: Larry
Pingback: michael
Pingback: dan
Pingback: george
Pingback: Darren
Pingback: Jack
Pingback: Arthur
Pingback: Chris
Pingback: albert
Pingback: Jonathan
Pingback: jeremy
Pingback: Alexander
Pingback: Jacob
Pingback: alberto
Pingback: rodney
Pingback: shane
Pingback: Charles
Pingback: leslie
Pingback: Cameron
Pingback: steven
Pingback: Kyle
Pingback: homer
Pingback: Sergio
Pingback: Jay
Pingback: Nicholas
Pingback: Lance
Pingback: Evan
Pingback: albert
Pingback: lance
Pingback: Tony
Pingback: Sam
Pingback: johnny
Pingback: Jeremiah
Pingback: Nicholas
Pingback: glen
Pingback: Stuart
Pingback: kyle
Pingback: Donald
Pingback: Salvador
Pingback: juan
Pingback: Sam
Pingback: Homer
Pingback: Max
Pingback: Jackie
Pingback: Milton
Pingback: arthur
Pingback: alfonso
Pingback: edwin
Pingback: bryan
Pingback: Theodore
Pingback: tom
Pingback: arturo
Pingback: Johnny
Pingback: Francis
Pingback: Rafael
Pingback: terry
Pingback: Carlos
Pingback: Todd
Pingback: Glenn
Pingback: harvey
Pingback: Henry
Pingback: Troy
Pingback: fernando
Pingback: jaime
Pingback: eugene
Pingback: dan
Pingback: clifton
Pingback: alexander
Pingback: Gilbert
Pingback: marion
Pingback: Bob
Pingback: jorge
Pingback: Hubert
Pingback: Eugene
Pingback: ivan
Pingback: jon
Pingback: kelly
Pingback: brian
Pingback: Hector
Pingback: dwayne
Pingback: Tim
Pingback: Nathan
Pingback: alfred
Pingback: Leslie
Pingback: Maurice
Pingback: Morris
Pingback: sam
Pingback: Jesus
Pingback: Rodney
Pingback: Salvador
Pingback: wesley
Pingback: Derek
Pingback: otis
Pingback: jeremiah
Pingback: Everett
Pingback: jessie
Pingback: richard
Pingback: martin
Pingback: terrence
Pingback: Timothy
Pingback: Phillip
Pingback: Alejandro
Pingback: Alfred
Pingback: Rex
Pingback: richard
Pingback: kurt
Pingback: Mitchell
Pingback: Franklin
Pingback: William
Pingback: Ben
Pingback: derrick
Pingback: Alfonso
Pingback: stuart
Pingback: Gerard
Pingback: brad
Pingback: Paul
Pingback: Carlos
Pingback: evan
Pingback: Dave
Pingback: matthew
Pingback: Leo
Pingback: Reginald
Pingback: ron
Pingback: Edgar
Pingback: Julius
Pingback: Milton
Pingback: shawn
Pingback: Calvin
Pingback: Julius
Pingback: brad
Pingback: Robert
Pingback: James
Pingback: Ramon
Pingback: Alex
Pingback: brett
Pingback: Bradley
Pingback: michael
Pingback: jessie
Pingback: steven
Pingback: Kirk
Pingback: Robert
Pingback: dean
Pingback: ralph
Pingback: jimmie
Pingback: rick
Pingback: Calvin
Pingback: vernon
Pingback: Craig
Pingback: Angel
Pingback: Stuart
Pingback: Mario
Pingback: vincent
Pingback: Virgil
Pingback: jonathan
Pingback: Wade
Pingback: dustin
Pingback: Ricardo
Pingback: ted
Pingback: darryl
Pingback: Johnny
Pingback: Harry
Pingback: shane
Pingback: Jared
Pingback: Dave
Pingback: Clifford
Pingback: harry
Pingback: Albert
Pingback: clifford
Pingback: Leo
Pingback: Lance
Pingback: Oscar
Pingback: Allan
Pingback: herman
Pingback: Alan
Pingback: harry
Pingback: Tommy
Pingback: barry
Pingback: Julian
Pingback: jerry
Pingback: jimmie
Pingback: Jeff
Pingback: Cody
Pingback: francis
Pingback: kenneth
Pingback: troy
Pingback: Nick
Pingback: Dwayne
Pingback: guy
Pingback: Frederick
Pingback: jay
Pingback: Roy
Pingback: Derrick
Pingback: Austin
Pingback: Gregory
Pingback: Ray
Pingback: Phillip
Pingback: jesse
Pingback: alfonso
Pingback: Lloyd
Pingback: joshua
Pingback: claude
Pingback: chad
Pingback: Roy
Pingback: roland
Pingback: Everett
Pingback: Barry
Pingback: kenny
Pingback: robert
Pingback: Paul
Pingback: gene
Pingback: Dan
Pingback: Eugene
Pingback: derrick
Pingback: Jack
Pingback: Billy
Pingback: julian
Pingback: Frank
Pingback: nick
Pingback: jacob
Pingback: Shaun
Pingback: Mitchell
Pingback: Joe
Pingback: armando
Pingback: Lance
Pingback: Reginald
Pingback: ryan
Pingback: andrew
Pingback: Austin
Pingback: shawn
Pingback: lyle
Pingback: Brent
Pingback: marvin
Pingback: Brandon
Pingback: Dustin
Pingback: james
Pingback: Trevor
Pingback: jackie
Pingback: floyd
Pingback: Brent
Pingback: Jack
Pingback: austin
Pingback: Gary
Pingback: Rick
Pingback: brad
Pingback: hector
Pingback: bryan
Pingback: Tracy
Pingback: Ronnie
Pingback: Vernon
Pingback: George
Pingback: Glen
Pingback: Ray
Pingback: andy
Pingback: roberto
Pingback: Joel
Pingback: Tommy
Pingback: Lyle
Pingback: Clifford
Pingback: ron
Pingback: allen
Pingback: Alexander
Pingback: marvin
Pingback: ray
Pingback: Ken
Pingback: james
Pingback: russell
Pingback: fredrick
Pingback: luis
Pingback: Terrance
Pingback: jerry
Pingback: ernest
Pingback: julian
Pingback: Raymond
Pingback: Brad
Pingback: Shawn
Pingback: ben
Pingback: arthur
Pingback: harold
Pingback: Dean
Pingback: harold
Pingback: doug
Pingback: Francisco
Pingback: Alex
Pingback: steve
Pingback: matt
Pingback: Zachary
Pingback: Carlton
Pingback: Ryan
Pingback: Jorge
Pingback: alfred
Pingback: jason
Pingback: Matt
Pingback: ronald
Pingback: Marc
Pingback: lloyd
Pingback: Wayne
Pingback: kelly
Pingback: jordan
Pingback: willard
Pingback: mark
Pingback: Jared
Pingback: Sam
Pingback: nathaniel
Pingback: Jeff
Pingback: fernando
Pingback: Jorge
Pingback: john
Pingback: don
Pingback: earl
Pingback: wade
Pingback: carlton
Pingback: Freddie
Pingback: Marc
Pingback: Wayne
Pingback: harold
Pingback: earl
Pingback: Francisco
Pingback: Kelly
Pingback: Fernando
Pingback: Homer
Pingback: Christopher
Pingback: russell
Pingback: ronnie
Pingback: ronald
Pingback: otis
Pingback: lyle
Pingback: ricardo
Pingback: edward
Pingback: brent
Pingback: Andy
Pingback: Adam
Pingback: Freddie
Pingback: Shannon
Pingback: nick
Pingback: kyle
Pingback: rafael
Pingback: Larry
Pingback: Allan
Pingback: Ernest
Pingback: joshua
Pingback: claude
Pingback: craig
Pingback: roberto
Pingback: Jackie
Pingback: Luther
Pingback: Raymond
Pingback: Eddie
Pingback: carlos
Pingback: sean
Pingback: morris
Pingback: dan
Pingback: Gregory
Pingback: Harvey
Pingback: tim
Pingback: Adam
Pingback: chris
Pingback: ivan
Pingback: rafael
Pingback: Julian
Pingback: evan
Pingback: oscar
Pingback: milton
Pingback: Fernando
Pingback: eddie
Pingback: Adrian
Pingback: Ramon
Pingback: Chris
Pingback: gary
Pingback: julius
Pingback: trevor
Pingback: Danny
Pingback: arthur
Pingback: sergio
Pingback: Jeremy
Pingback: Lewis
Pingback: Vernon
Pingback: Jaime
Pingback: larry
Pingback: sam
Pingback: James
Pingback: Jay
Pingback: Miguel
Pingback: bernard
Pingback: brent
Pingback: Charles
Pingback: donald
Pingback: tyler
Pingback: Brandon
Pingback: howard
Pingback: shaun
Pingback: Chris
Pingback: brandon
Pingback: Alejandro
Pingback: claude
Pingback: shane
Pingback: Neil
Pingback: albert
Pingback: Floyd
Pingback: Jordan
Pingback: Derek
Pingback: Scott
Pingback: douglas
Pingback: Eugene
Pingback: marshall
Pingback: Darrell
Pingback: michael
Pingback: michael
Pingback: Gregory
Pingback: clinton
Pingback: craig
Pingback: kenny
Pingback: Neil
Pingback: jerome
Pingback: Dave
Pingback: Travis
Pingback: austin
Pingback: Melvin
Pingback: Gene
Pingback: Anthony
Pingback: Nathan
Pingback: Doug
Pingback: carlos
Pingback: Gregory
Pingback: Gary
Pingback: ricky
Pingback: gregory
Pingback: Jim
Pingback: phillip
Pingback: salvador
Pingback: Nathan
Pingback: Morris
Pingback: Stephen
Pingback: Lance
Pingback: wesley
Pingback: allen
Pingback: Alan
Pingback: tracy
Pingback: harry
Pingback: Wallace
Pingback: Edwin
Pingback: gilbert
Pingback: allen
Pingback: rene
Pingback: steve
Pingback: Lester
Pingback: leo
Pingback: Henry
Pingback: Everett
Pingback: Greg
Pingback: Ronald
Pingback: Kyle
Pingback: enrique
Pingback: benjamin
Pingback: maurice
Pingback: arnold
Pingback: lynn
Pingback: donald
Pingback: Cecil
Pingback: victor
Pingback: Christian
Pingback: Cecil
Pingback: jay
Pingback: lee
Pingback: lewis
Pingback: zachary
Pingback: Chris
Pingback: Matthew
Pingback: tony
Pingback: joe
Pingback: Ken
Pingback: allen
Pingback: Gerald
Pingback: Marcus
Pingback: anthony
Pingback: Alberto
Pingback: Gerald
Pingback: Steve
Pingback: jimmie
Pingback: David
Pingback: cory
Pingback: theodore
Pingback: benjamin
Pingback: Sean
Pingback: trevor
Pingback: Lawrence
Pingback: Maurice
Pingback: dave
Pingback: rene
Pingback: Leo
Pingback: Glenn
Pingback: Zachary
Pingback: Eric
Pingback: curtis
Pingback: russell
Pingback: rafael
Pingback: daniel
Pingback: Joey
Pingback: Stephen
Pingback: Enrique
Pingback: Larry
Pingback: Edward
Pingback: Jason
Pingback: Roger
Pingback: Dean
Pingback: Harold
Pingback: Milton
Pingback: justin
Pingback: juan
Pingback: kyle
Pingback: manuel
Pingback: sergio
Pingback: randy
Pingback: Alan
Pingback: Paul
Pingback: Michael
Pingback: Jared
Pingback: freddie
Pingback: Nelson
Pingback: Warren
Pingback: bradley
Pingback: kenny
Pingback: richard
Pingback: Harry
Pingback: perry
Pingback: Harold
Pingback: Homer
Pingback: Brent
Pingback: Patrick
Pingback: Ricky
Pingback: Gordon
Pingback: Eduardo
Pingback: Shane
Pingback: Eduardo
Pingback: Rex
Pingback: Patrick
Pingback: herbert
Pingback: Kelly
Pingback: Dennis
Pingback: Clinton
Pingback: clarence
Pingback: Darrell
Pingback: Jose
Pingback: harold
Pingback: ian
Pingback: Douglas
Pingback: Wayne
Pingback: Adam
Pingback: Oliver
Pingback: craig
Pingback: ricardo
Pingback: Christopher
Pingback: billy
Pingback: leslie
Pingback: allan
Pingback: jacob
Pingback: ronald
Pingback: Roger
Pingback: Mario
Pingback: michael
Pingback: benjamin
Pingback: Angelo
Pingback: Kenneth
Pingback: jason
Pingback: Gene
Pingback: ricky
Pingback: edward
Pingback: Austin
Pingback: Kyle
Pingback: Nathaniel
Pingback: doug
Pingback: melvin
Pingback: clifford
Pingback: Franklin
Pingback: Carlos
Pingback: Fernando
Pingback: julius
Pingback: Micheal
Pingback: norman
Pingback: ivan
Pingback: Joseph
Pingback: evan
Pingback: carlos
Pingback: nelson
Pingback: Herman
Pingback: ben
Pingback: Carlos
Pingback: Sergio
Pingback: Terrence
Pingback: Don
Pingback: francis
Pingback: tyrone
Pingback: Shannon
Pingback: Byron
Pingback: tracy
Pingback: Gilbert
Pingback: clifton
Pingback: darryl
Pingback: Kenny
Pingback: Dan
Pingback: mario
Pingback: vincent
Pingback: derrick
Pingback: calvin
Pingback: Joe
Pingback: Scott
Pingback: angel
Pingback: jack
Pingback: ian
Pingback: Donald
Pingback: sam
Pingback: randy
Pingback: herbert
Pingback: clifford
Pingback: alexander
Pingback: eugene
Pingback: Sam
Pingback: wendell
Pingback: salvador
Pingback: Kent
Pingback: Ricardo
Pingback: lawrence
Pingback: Ian
Pingback: Albert
Pingback: morris
Pingback: joel
Pingback: peter
Pingback: Fred
Pingback: matt
Pingback: eduardo
Pingback: derrick
Pingback: Jeffery
Pingback: marvin
Pingback: hubert
Pingback: Homer
Pingback: Nelson
Pingback: steve
Pingback: scott
Pingback: Reginald
Pingback: Gordon
Pingback: clyde
Pingback: wayne
Pingback: carl
Pingback: Kirk
Pingback: bob
Pingback: henry
Pingback: francis
Pingback: jeffrey
Pingback: Ruben
Pingback: kenny
Pingback: evan
Pingback: jeffery
Pingback: ian
Pingback: leonard
Pingback: jordan
Pingback: Andre
Pingback: Dustin
Pingback: edgar
Pingback: Jacob
Pingback: mathew
Pingback: angel
Pingback: fred
Pingback: Justin
Pingback: julius
Pingback: maurice
Pingback: Andy
Pingback: charles
Pingback: marshall
Pingback: charlie
Pingback: Cory
Pingback: Samuel
Pingback: edward
Pingback: warren
Pingback: Virgil
Pingback: Jared
Pingback: Ernest
Pingback: Roy
Pingback: justin
Pingback: ernest
Pingback: marvin
Pingback: Claude
Pingback: greg
Pingback: johnnie
Pingback: Travis
Pingback: james
Pingback: Bobby
Pingback: Ralph
Pingback: Gary
Pingback: ryan
Pingback: Kent
Pingback: karl
Pingback: Richard
Pingback: Reginald
Pingback: Terrence
Pingback: Scott
Pingback: Rafael
Pingback: alejandro
Pingback: ernest
Pingback: Shannon
Pingback: ray
Pingback: Matt
Pingback: Jordan
Pingback: Melvin
Pingback: arturo
Pingback: Kirk
Pingback: warren
Pingback: Shannon
Pingback: leonard
Pingback: Wade
Pingback: darryl
Pingback: Edward
Pingback: martin
Pingback: Luther
Pingback: ben
Pingback: Pedro
Pingback: Ruben
Pingback: David
Pingback: ernest
Pingback: jeffrey
Pingback: ken
Pingback: Bruce
Pingback: ross
Pingback: Harry
Pingback: willard
Pingback: Robert
Pingback: Raul
Pingback: Leonard
Pingback: Brad
Pingback: Don
Pingback: Kirk
Pingback: Thomas
Pingback: julio
Pingback: ronnie
Pingback: ryan
Pingback: herman
Pingback: Brandon
Pingback: Oscar
Pingback: casey
Pingback: nick
Pingback: Chris
Pingback: Chad
Pingback: derrick
Pingback: robert
Pingback: Zachary
Pingback: Terry
Pingback: Arnold
Pingback: Leslie
Pingback: benjamin
Pingback: carlos
Pingback: Jimmie
Pingback: danny
Pingback: luke
Pingback: mathew
Pingback: Dustin
Pingback: howard
Pingback: Matt
Pingback: Eddie
Pingback: Wayne
Pingback: tyler
Pingback: Philip
Pingback: alex
Pingback: Fredrick
Pingback: Johnnie
Pingback: Calvin
Pingback: tyrone
Pingback: franklin
Pingback: Tyrone
Pingback: enrique
Pingback: lewis
Pingback: Bernard
Pingback: brett
Pingback: ruben
Pingback: Ryan
Pingback: ramon
Pingback: Harvey
Pingback: donald
Pingback: Raul
Pingback: Oscar
Pingback: jonathan
Pingback: Wayne
Pingback: Rene
Pingback: stuart
Pingback: Pedro
Pingback: frank
Pingback: Luis
Pingback: Joe
Pingback: Justin
Pingback: Maurice
Pingback: rex
Pingback: tyrone
Pingback: Glenn
Pingback: darrell
Pingback: herman
Pingback: angel
Pingback: Brent
Pingback: Lee
Pingback: luis
Pingback: Adam
Pingback: felix
Pingback: Dan
Pingback: timothy
Pingback: James
Pingback: Otis
Pingback: Sidney
Pingback: walter
Pingback: Ian
Pingback: Ron
Pingback: evan
Pingback: Allen
Pingback: alejandro
Pingback: corey
Pingback: joshua
Pingback: Darryl
Pingback: Kenneth
Pingback: Ray
Pingback: Henry
Pingback: hubert
Pingback: Ian
Pingback: Ronald
Pingback: jaime
Pingback: Bryan
Pingback: Tyler
Pingback: Joshua
Pingback: Derek
Pingback: wayne
Pingback: andy
Pingback: donnie
Pingback: dean
Pingback: johnny
Pingback: Frederick
Pingback: Eddie
Pingback: brent
Pingback: bruce
Pingback: guy
Pingback: Aaron
Pingback: casey
Pingback: harry
Pingback: glen
Pingback: dean
Pingback: Wallace
Pingback: sidney
Pingback: stephen
Pingback: alan
Pingback: marvin
Pingback: mario
Pingback: orlando
Pingback: allen
Pingback: randy
Pingback: Ernest
Pingback: Danny
Pingback: Freddie
Pingback: eugene
Pingback: ramon
Pingback: Bruce
Pingback: gerard
Pingback: Johnny
Pingback: Lawrence
Pingback: jared
Pingback: Nathaniel
Pingback: greg
Pingback: gregory
Pingback: Andre
Pingback: bill
Pingback: christopher
Pingback: Rex
Pingback: Franklin
Pingback: Perry
Pingback: orlando
Pingback: Byron
Pingback: Cory
Pingback: jesse
Pingback: Nelson
Pingback: wallace
Pingback: clyde
Pingback: anthony
Pingback: jeffery
Pingback: Joey
Pingback: sean
Pingback: Terrence
Pingback: Henry
Pingback: alvin
Pingback: Melvin
Pingback: darrell
Pingback: Darryl
Pingback: leon
Pingback: Glen
Pingback: Homer
Pingback: felix
Pingback: Micheal
Pingback: warren
Pingback: terrence
Pingback: Leslie
Pingback: Derrick
Pingback: Doug
Pingback: Shaun
Pingback: Philip
Pingback: Leslie
Pingback: Johnny
Pingback: harold
Pingback: adrian
Pingback: nicholas
Pingback: trevor
Pingback: benjamin
Pingback: Jerome
Pingback: Marc
Pingback: Benjamin
Pingback: mario
Pingback: Vernon
Pingback: virgil
Pingback: Lyle
Pingback: harvey
Pingback: Bernard
Pingback: richard
Pingback: nathan
Pingback: donald
Pingback: Donnie
Pingback: victor
Pingback: Bob
Pingback: Oscar
Pingback: howard
Pingback: warren
Pingback: sidney
Pingback: Otis
Pingback: herbert
Pingback: bill
Pingback: Clinton
Pingback: Warren
Pingback: ricky
Pingback: roberto
Pingback: Stephen
Pingback: ray
Pingback: joseph
Pingback: Fredrick
Pingback: dale
Pingback: lee
Pingback: Randall
Pingback: lee
Pingback: Kent
Pingback: don
Pingback: andrew
Pingback: Neil
Pingback: donnie
Pingback: Roy
Pingback: Mario
Pingback: Eduardo
Pingback: Ronald
Pingback: Austin
Pingback: wallace
Pingback: todd
Pingback: Fredrick
Pingback: brent
Pingback: billy
Pingback: Max
Pingback: joe
Pingback: Brandon
Pingback: Dana
Pingback: Eugene
Pingback: Benjamin
Pingback: adam
Pingback: luther
Pingback: max
Pingback: Fred
Pingback: Thomas
Pingback: marc
Pingback: Phillip
Pingback: herbert
Pingback: mark
Pingback: Francis
Pingback: Andy
Pingback: christopher
Pingback: Charles
Pingback: Edwin
Pingback: Dwight
Pingback: Jessie
Pingback: ivan
Pingback: vernon
Pingback: bruce
Pingback: albert
Pingback: clinton
Pingback: andrew
Pingback: ken
Pingback: otis
Pingback: bradley
Pingback: adam
Pingback: carl
Pingback: bill
Pingback: Julio
Pingback: richard
Pingback: Louis
Pingback: Tony
Pingback: ben
Pingback: Carlton
Pingback: jon
Pingback: Brandon
Pingback: Daniel
Pingback: Julio
Pingback: max
Pingback: Aaron
Pingback: mario
Pingback: andy
Pingback: Maurice
Pingback: bruce
Pingback: Christian
Pingback: jim
Pingback: Doug
Pingback: Luke
Pingback: jon
Pingback: Herbert
Pingback: edward
Pingback: trevor
Pingback: karl
Pingback: Mario
Pingback: Mark
Pingback: marion
Pingback: Bobby
Pingback: Ted
Pingback: Brandon
Pingback: William
Pingback: gabriel
Pingback: Paul
Pingback: corey
Pingback: sergio
Pingback: Joe
Pingback: douglas
Pingback: Dana
Pingback: gary
Pingback: Robert
Pingback: Sergio
Pingback: Dave
Pingback: Ricardo
Pingback: Floyd
Pingback: matt
Pingback: Rafael
Pingback: Trevor
Pingback: Austin
Pingback: marc
Pingback: Austin
Pingback: philip
Pingback: Ken