Working Sets with Zeitgeist – A Case of Implicit Relating

  1. Working Sets – A Case of Implicit Relating
Albrecht Schmidt presented our work [4] at the Personal Informatics Workshop at CHI 2010 and blogged about it. It was him, who coined the distinction of implicit and explicit human-computer interaction (HCI) [5], which is now commonly used in HCI: “In contrast to explicit interaction, implicit interactions are based not on explicit actions by the user (directed at a computer), but more commonly on users’ existing patterns of behavior.” [6, p.191], referring to [5]. Differentiating between implicit and explicit HCI proves productive as an analogy for investigating different forms of relating a user’s information items, as enabled by experience-trace infrastructures, such as Zeitgeist and ContextDrive.
Implicit and Explicit HCI
“Implicit human-computer interaction is an action, performed by the user that is not primarily aimed to interact with a computerized system but which such a system understands as input.” [5]. This is opposed to explicit HCI, where “the user tells the computer at a certain level of abstraction (e.g., by command-line, direct manipulation using a GUI, gesture, or speech input) what she expects the computer to do.” [5]. An example of explicit HCI is using a direct-manipulation graphical user interface (GUI) to drag a file from one folder to another, in order to have the file become located in the target folder. Implicit HCI, on the other hand, requires computers to observe and interpret what the user is doing, via sensors, which may be implemented as physical sensors (e.g., GPS) or digital sensors (e.g., file usage monitor). Thereupon, a computer can offer information such as “you presented conceptReport-v1.1, while being at this customer’s site last time on april 12”. Consequently, monitoring user behavior is a basic prerequisite for implementing implicit HCI.
Implicit Creation of Working Sets
I’ll introduce implicit relating as a specialization of implicit HCI, which means it inherits the goals of implicit HCI. The purpose of implicit HCI is to reduce mental load on the user’s side by reducing attention-intensive efforts directed at explicitly handling a computer’s UI, in order to get something done. Similarly, implicit relating of a user’s information items aims at reducing explicit user actions towards grouping her information items, for example, in order to represent “the stuff she is currently working on” as working sets. Working sets, as an example of information collections of implicitly related items may be related to, but are still different from to be archived information collections [1]. This can be illustrated by comparing (a) paper piles on your desk with (b) folders in your rack: Grouping criteria and purpose of (a) and (b) are simply different.
Working Sets
In my last post (final section, 4.), I referred to re-finding working sets as one of the new user experiences enabled by experience-trace infrastructures. The notion of a working set is borrowed from Federico’s GNOME 2008 UX hackfest post and his October 2009 post on this topic. The motivation behind this notion is that working on rather complex topics usually involves multiple information items, such as code, emails, design documents, videos, and web resources. Plus, completing complex tasks is seldom achieved within a single uninterrupted time period of activity dedicated to that task. Hence, the need to again and again resume work, which often implies re-using at least some of the involved information items. Beyond, working sets commonly evolve over time, be it shrinking or expanding. Nowadays, it is left to the user to explicitly create and maintain folders to group working-set items, for the purpose of efficiently re-finding them, when resuming an activity.
Scenario
Consider the following common situation: When continuing work with others, one often needs to refer back to items used earlier in the common activity thread. This could be the UI mockup discussed two days ago, along with the IRC discussion related to it, and the existing code you looked at, which would need to be changed, in order to implement the discussed mockup.
As already said above, today, in order to conveniently go back to these items for task resumption, you would have needed to group them together before. So what? Well, first, this grouping is all too often “forgotten”, for various reasons. One of them is that it is perceived secondary to one’s actual task work, i.e. on top of “getting things done”. Let alone the fact that today’s means turn linking together an image, a chat discussion, and code pointers into a rather clumsy process. Additionally, anticipating what one might need in the future is hard in principle.
If not having grouped the needed working-set items beforehand, one is forced to hunt each of them down again, by means of explicit HCI, i.e. to re-find them by browsing and searching. Even if re-finding each relevant item might not be a big problem on its own, re-finding all of them consumes time and potentially interrupts your work flow. Plus, recalling all of the relevant items, if you achieve to do so, implies considerable effort, i.e. memory load.
Presentation of Working Sets
Instead, in the above scenario, your computer could unobtrusively present the relevant working-set items as soon as you are chatting with your collaborator again. Zeitgeist enables this by interpreting the collaborator match, and possibly more matches, between the before and now situations, as an indicator that you might want to continue working on one of the topics you had recently treated together. The presentation of an implicitly created working set, i.e. a set of implicitly related items, necessitates monitoring user behavior, just as is required to implement implicit HCI. In the short scenario above, this is monitoring of using images, of chat conversations, and of programming.
All of this serves the general goal of having information bits and pieces “at hand” when needed. That is the vision behind the early-prototype video by Seif Lotfy below, which implements the saying “stuff you use together belongs together”, which we coined at GUADEC 2009. The corresponding calculations in the Zeitgeist engine are for now performed ad-hoc in nearly real-time. One of the remaining challenges is to suitably draw borders among different working sets, accounting for their dynamic evolvement over time, and distinguishing working sets from what the user does “on the side”.
The more we achieve to solve these issues, the better the employment of such implicitly created working sets will work towards faster, less effortful, and so more convenient re-finding and access of previously used information items relevant to the user’s respective activity. Referring to paper-based work at your physical desk again, the above described implicit information organization can be understood as automatically putting paper documents into piles, informed by how each of them is used, by their different arrangements on your desk over time, and by the, possibly multiple, occurrences of the documents being involved in your workflow.
Design Issues
Automatically presenting a working set upon recognizing similarities between earlier situations and the current one, which, by the way, is a case of implicit output, releases the user from the need to explicitly browse or search for the items without requiring him to explicitly create and maintain working sets. Thereby, in the ideal case, the user doesn’t need to recall the relevant information items, but instead just needs to recognize them and choose accordingly from the presented working set. This needs to be complemented by means of querying for working sets, for example by defining a time scope.
Even though Zeitgeist provides support for the above discussed means for implicit creation of working sets, these dynamic collections might, in some cases, still become too large to be dealt with easily by the user. Therefore, our visualization of a working set will reflect a gradual and dynamic relevance notion, i.e. show how much a certain item belongs to a working set and/or to the currently recognized situation. In addition, we are experimenting with the concept of a life time of items with respect to inclusion into a working set, in combination with the relevance concept. This could be visually mirrored as having items fade out over time, if not being used, and fade in again, if being re-used. If users want more control, pinning items onto the working-set canvas will prevent fading behavior.
Beyond the implicit means of a gradual relevance notion and an item life-time, there are also explicit means of letting a user manipulate a working set and its visualization, in order to keep them treatable. These are blacklisting, filtering, and maybe defining size limits. Furthermore, we will investigate letting users partition a working set by arranging its items on a canvas or by employing tags or folders. The two latter naming means would also allow several working sets to be presented at once, reflecting, for example, the case of the same group of people working on different tasks “in parallel”.
Users often experience a loss of control when confronted with dynamic structures, such as dynamic menus. This needs to be avoided with respect to the rather dynamic concept of working sets. Users should not fear “losing” working-set elements or not being able to later re-find and access items they had earlier seen in working sets. This goal could be achieved by automatically turning working sets into persistent collections, for example, daily. These periodic backups would be “lossless” with respect to once included items. Working sets can even be re-computed at any time, as long as no events are deleted from the Zeitgeist log. By default, deletion of essential events therefore only happens upon user request. Consequently, users will not be required to explicitly keep working sets.
Additionally, we will try designing the computation and visualization of working sets such that users will not be forced to organize or re-organize these sets at specific occasions or times. Instead, users should feel and be in control over when to further classify information from working sets. This is because of the known negative effects of imposing interrupts on a user’s work flow, which are perceived as unnecessary overhead on the user’s part. Another rationale for the above design goal is the often reproduced finding of [2], that untitled “piles” are helpful means to represent working-set like information.
As opposed to the world of our physical desktops, the computer world enables us to have the same information item in multiple “piles”, so working sets, at the same time. Beyond, Zeitgeist can also keep track of the evolvement of working sets and the information they “contain”, in order to enable a user to refer back to different versions of them over time. A related challenge of making working sets usable is to design their behavior and user interface in a way, which lets the user distinguish among copy and reference semantics for the “contained” information items.
References
[1] William Jones, Jaime Teevan (2007). Personal Information Management. University of Washington Press, Seattle and London.
[2] Thomas W. Malone (1983). How do people organize their desks? – Implications for the Design of Office Information Systems. ACM TOIS, Vol. 1, No. 1 (January 1983), pp. 99-112.
[3] Thorsten Prante, Richard Stenzel, Kostanija Petrovic, Victor Bayon (2004). Exploiting Context Histories: A Cross-Tool and Cross-Device Approach to Reduce Compartmentalization when Going Back. Proceedings of Informatik 2004, Ulm, September 20-24, pp. 314-318.
[4] Thorsten Prante, Jens Sauer, Seif Lotfy, Albrecht Schmidt (2010). Personal Experience Trace: Orienting Oneself in One’s Activities and Experiences. CHI 2010 Workshop on Personal Informatics, April 10, Atlanta, Georgia, USA.
[5] Albrecht Schmidt (2000). Implicit Human Computer Interaction through Context. Personal and Ubiquitous Computing, Vol. 4, No. 2&3 (June 2000), pp. 191-199.
[6] Andrew D. Wilson (2008). Sensor- and Recognition-Based Input for Interaction. Chapter 10 of: Andrew Sears, Julie A. Jacko (2008). The Human-Computer Interaction Handbook: Fundamentals, Evolving Technologies, and Emerging Applications (2nd Ed.), CRC Press, New York, USA.

Albrecht Schmidt presented our work [4] at the Personal Informatics Workshop at CHI 2010 and blogged about it. It was him, who coined the distinction of implicit and explicit human-computer interaction (HCI) [5], which is now commonly used in HCI: “In contrast to explicit interaction, implicit interactions are based not on explicit actions by the user (directed at a computer), but more commonly on users’ existing patterns of behavior.” [6, p.191], referring to [5]. Differentiating between implicit and explicit HCI proves productive as an analogy for investigating different forms of relating a user’s information items, as enabled by experience-trace infrastructures, such as Zeitgeist and ContextDrive.

Implicit and Explicit HCI

“Implicit human-computer interaction is an action, performed by the user that is not primarily aimed to interact with a computerized system but which such a system understands as input.” [5]. This is opposed to explicit HCI, where “the user tells the computer at a certain level of abstraction (e.g., by command-line, direct manipulation using a GUI, gesture, or speech input) what she expects the computer to do.” [5]. An example of explicit HCI is using a direct-manipulation graphical user interface (GUI) to drag a file from one folder to another, in order to have the file become located in the target folder. Implicit HCI, on the other hand, requires computers to observe and interpret what the user is doing, via sensors, which may be implemented as physical sensors (e.g., GPS) or digital sensors (e.g., file usage monitor). Thereupon, a computer can offer information such as “you presented conceptReport-v1.1, while being at this customer’s site last time on april 12”. Consequently, monitoring user behavior is a basic prerequisite for implementing implicit HCI.

Implicit Creation of Working Sets

I’ll introduce implicit relating as a specialization of implicit HCI, which means it inherits the goals of implicit HCI. The purpose of implicit HCI is to reduce mental load on the user’s side by reducing attention-intensive efforts directed at explicitly handling a computer’s UI, in order to get something done. Similarly, implicit relating of a user’s information items aims at reducing explicit user actions towards grouping her information items, for example, in order to represent “the stuff she is currently working on” as working sets. Working sets, as an example of information collections of implicitly related items may be related to, but are still different from to be archived information collections [1]. This can be illustrated by comparing (a) paper piles on your desk with (b) folders in your rack: Grouping criteria and purpose of (a) and (b) are simply different.

Working Sets

In my previous post (final section, 4.), I referred to re-finding working sets as one of the new user experiences enabled by experience-trace infrastructures. The notion of a working set is borrowed from Federico’s GNOME 2008 UX hackfest post and his October 2009 post on this topic. The motivation behind this notion is that working on rather complex topics usually involves multiple information items, such as code, emails, design documents, videos, and web resources. Plus, completing complex tasks is seldom achieved within a single uninterrupted time period of activity dedicated to that task. Hence, the need to again and again resume work, which often implies re-using at least some of the involved information items. Beyond, working sets commonly evolve over time, be it shrinking or expanding. Nowadays, it is left to the user to explicitly create and maintain folders to group working-set items, for the purpose of efficiently re-finding them, when resuming an activity.

Scenario

Consider the following common situation: When continuing work with others, one often needs to refer back to items used earlier in the common activity thread. This could be the UI mockup discussed two days ago, along with the IRC discussion related to it, and the existing code you looked at, which would need to be changed, in order to implement the discussed mockup.

As already said above, today, in order to conveniently go back to these items for task resumption, you would have needed to group them together before. So what? Well, first, this grouping is all too often “forgotten”, for various reasons. One of them is that it is perceived secondary to one’s actual task work, i.e. on top of “getting things done”. Let alone the fact that today’s means turn linking together an image, a chat discussion, and code pointers into a rather clumsy process. Additionally, anticipating what one might need in the future is hard in principle.

If not having grouped the needed working-set items beforehand, one is forced to hunt each of them down again, by means of explicit HCI, i.e. to re-find them by browsing and searching. Even if re-finding each relevant item might not be a big problem on its own, re-finding all of them consumes time and potentially interrupts your work flow. Plus, recalling all of the relevant items, if you achieve to do so, implies considerable effort, i.e. memory load.

Presentation of Working Sets

Instead, in the above scenario, your computer could unobtrusively present the relevant working-set items as soon as you are chatting with your collaborator again. Zeitgeist enables this by interpreting the collaborator match, and possibly more matches, between the before and now situations, as an indicator that you might want to continue working on one of the topics you had recently treated together. The presentation of an implicitly created working set, i.e. a set of implicitly related items, necessitates monitoring user behavior, just as is required to implement implicit HCI. In the short scenario above, this is monitoring of using images, of chat conversations, and of programming.

All of this serves the general goal of having information bits and pieces “at hand” when needed. That is the vision behind the early-prototype video by Seif Lotfy below, which implements the saying “stuff you use together belongs together”, which we coined at GUADEC 2009. The corresponding calculations in the Zeitgeist engine are for now performed ad-hoc in nearly real-time. One of the remaining challenges is to suitably draw borders among different working sets, accounting for their dynamic evolvement over time, and distinguishing working sets from what the user does “on the side”.

Implicitly relating your files and contacts with Zeitgeist from Seif Lotfy on Vimeo.

The more we achieve to solve these issues, the better the employment of such implicitly created working sets will work towards faster, less effortful, and so more convenient re-finding and access of previously used information items relevant to the user’s respective activity. Referring to paper-based work at your physical desk again, the above described implicit information organization can be understood as automatically putting paper documents into piles, informed by how each of them is used, by their different arrangements on your desk over time, and by the, possibly multiple, occurrences of the documents being involved in your workflow.

Design Issues

Automatically presenting a working set upon recognizing similarities between earlier situations and the current one, which, by the way, is a case of implicit output, releases the user from the need to explicitly browse or search for the items without requiring him to explicitly create and maintain working sets. Thereby, in the ideal case, the user doesn’t need to recall the relevant information items, but instead just needs to recognize them and choose accordingly from the presented working set. This needs to be complemented by means of querying for working sets, for example by defining a time scope.

Even though Zeitgeist provides support for the above discussed means for implicit creation of working sets, these dynamic collections might, in some cases, still become too large to be dealt with easily by the user. Therefore, our visualization of a working set will reflect a gradual and dynamic relevance notion, i.e. show how much a certain item belongs to a working set and/or to the currently recognized situation. In addition, we are experimenting with the concept of a life time of items with respect to inclusion into a working set, in combination with the relevance concept. This could be visually mirrored as having items fade out over time, if not being used, and fade in again, if being re-used. If users want more control, pinning items onto the working-set canvas will prevent fading behavior.

Beyond the implicit means of a gradual relevance notion and an item life-time, there are also explicit means of letting a user manipulate a working set and its visualization, in order to keep them treatable. These are blacklisting, filtering, and maybe defining size limits. Furthermore, we will investigate letting users partition a working set by arranging its items on a canvas or by employing tags or folders. The two latter naming means would also allow several working sets to be presented at once, reflecting, for example, the case of the same group of people working on different tasks “in parallel”.

Users often experience a loss of control when confronted with dynamic structures, such as dynamic menus. This needs to be avoided with respect to the rather dynamic concept of working sets. Users should not fear “losing” working-set elements or not being able to later re-find and access items they had earlier seen in working sets. This goal could be achieved by automatically turning working sets into persistent collections, for example, daily. These periodic backups would be “lossless” with respect to once included items. Working sets can even be re-computed at any time, as long as no events are deleted from the Zeitgeist log. By default, deletion of essential events therefore only happens upon user request. Consequently, users will not be required to explicitly keep working sets.

Additionally, we will try designing the computation and visualization of working sets such that users will not be forced to organize or re-organize these sets at specific occasions or times. Instead, users should feel and be in control over when to further classify information from working sets. This is because of the known negative effects of imposing interrupts on a user’s work flow, which are perceived as unnecessary overhead on the user’s part. Another rationale for the above design goal is the often reproduced finding of [2], that untitled “piles” are helpful means to represent working-set like information.

As opposed to the world of our physical desktops, the computer world enables us to have the same information item in multiple “piles”, so working sets, at the same time. Beyond, Zeitgeist can also keep track of the evolvement of working sets and the information they “contain”, in order to enable a user to refer back to different versions of them over time. A related challenge of making working sets usable is to design their behavior and user interface in a way, which lets the user distinguish among copy and reference semantics for the “contained” information items.

References

[1] William Jones, Jaime Teevan (2007). Personal Information Management. University of Washington Press, Seattle and London.

[2] Thomas W. Malone (1983). How do people organize their desks? – Implications for the Design of Office Information Systems. ACM TOIS, Vol. 1, No. 1 (January 1983), pp. 99-112.

[3] Thorsten Prante, Richard Stenzel, Kostanija Petrovic, Victor Bayon (2004). Exploiting Context Histories: A Cross-Tool and Cross-Device Approach to Reduce Compartmentalization when Going Back. Proceedings of Informatik 2004, Ulm, September 20-24, pp. 314-318.

[4] Thorsten Prante, Jens Sauer, Seif Lotfy, Albrecht Schmidt (2010). Personal Experience Trace: Orienting Oneself in One’s Activities and Experiences. CHI 2010 Workshop on Personal Informatics, April 10, Atlanta, Georgia, USA.

[5] Albrecht Schmidt (2000). Implicit Human Computer Interaction through Context. Personal and Ubiquitous Computing, Vol. 4, No. 2&3 (June 2000), pp. 191-199.

[6] Andrew D. Wilson (2008). Sensor- and Recognition-Based Input for Interaction. Chapter 10 of: Andrew Sears, Julie A. Jacko (2008). The Human-Computer Interaction Handbook: Fundamentals, Evolving Technologies, and Emerging Applications (2nd Ed.), CRC Press, New York, USA.

679 Responses to “Working Sets with Zeitgeist – A Case of Implicit Relating”

  1. [...] floating as well under development in the Zeitgeist universe, I would recommend you reading this BIG ASS blog post by Mr. soon to be Dr. Thorsten [...]

  2. James says:

    Hey, I’ve also been thinking about the potential for Zeitgeist on the desktop, and it’s very similar to what you’ve described here. Although I’ve been thinking more about how the actual interface would work.

    I’ve put together a little mockup that builds upon the task pooper concept:
    http://www.users.on.net/~cmoschou/images/augmented_task_pooper.png

    It’s fairly simplistic, but I suppose it needs to be, otherwise it just becomes another management tool that people will never use. What do you think?

  3. Thorsten says:

    @James: Hey, I think your focus concept and button is a genius idea. And I agree that this stuff needs to have a rather simplistic UI. Regarding what is shown upon clicking the focus button in your mockups, I am not sure, if the most relevant items should be on top or closest to the representation of the current activity below. Overall, very nice mockups! Thanks!

    Here is a video of the ReflAction Journal (a UI of my PhD-work system ContextDrive, which also influenced and is influencing Zeitgeist and GAJ) prepared for our workshop presentation at CHI 2010: http://reflaction.info/wp-content/uploads/ReflActionJournal_CHI2010.mov. I’ll blog about it later this week. The video demonstrates appropriating calendar items as working-set/activity labels in the way, I had earlier described also on my blog: “The experience-trace implementations ContextDrive and Zeitgeist can not only capture when a calendar item has been created or modified, but, more importantly, what time span it refers to. Thereby, calendar items are turned into labels and container items for what actually happens during the time span in question. Plus, calendar items can be appropriated, for example, to serve users in relating their preparatory and follow-up activities to the represented “events”. The ReflAction Journal facilitates this via drag’n’drop.” Your focus button relates to the vertical “now” line in the video, but so far, we didn’t use it in the ways you are suggesting. But I think, I’ll change that.

    Maybe, you’ll find it interesting to read through the section “Journal User Interfaces”, starting at page 4 of this paper: http://reflaction.info/wp-content/uploads/PersonalExperienceTrace_prante-etal.pdf, from where you can see that there are not only calendar-item labels in the context pane within the below part of the ReflAction Journal, but also task/to-do labels. And yes, we are working towards integrating this kind of stuff in Zeitgeist, the Activity Journal, and other Zeitgeist-based UIs.

  4. James says:

    @Thorston: Thanks, those links are interesting. It seems that my concept and the ReflAction Journal are solving different problems for two very different personas.

    Persona 1:

    This user uses their computer mostly casually and recreationally, and sometimes productively. They are only ever working on one or two projects at a time, and as such they already have a pretty good mental model of how different items relate to each other.

    The human mind is actually pretty good at ascribing meaning to things, and when presented with an array of options the power of recognition is pretty apt at filtering relevant items out from the irrelevant. This persona doesn’t need the computer to group things for them and they are probably not going to spend time inside a management interface mapping their already existing mental model into the computer. What will benefit this persona is a computer that is able to tap into this mental model, allowing the user to access items immediately, eliminating the mundane, tedious actions of going through the file browser, or web history etc. It doesn’t actually matter if the groups created by the computer have fuzzy boundaries or are otherwise innaccurate, because this persona will still be able to recoginse the important.

    Also for this persona it is not so important for groups of relations to persist. What I mean is that while individual relationships must exist for the technology to work, the concept of a ‘working set’ doesn’t need to be exposed to the user. There is no real need to be able to manipulate sets outside of the currently active one. Instead what is important is to be able to recreate the set (as oppose to retrieve from a data store) when the user needs it. You can determine when this will be because the user will access one of the items (from GAJ for example) and you can recreate the set around that file on demand.

    Persona 2:

    Recognising the fact the the human mind can only deal with a small number of things at any one time, this persona describes people who have to deal with a large number of things. For example a person who works with many clients and each client involves a number of subprojects would fit into this persona.

    Here, due to information overload, the person is unable to rely on themselves to remember everything they need to know; they need to offload some of the burden onto the computer. This persona would benefit from a management interface with persisting data. They will allocate time solely spent on organising items into related sets. This is not so much of a burden as it is for Persona 1 because we know they do this anyway with to-do lists, journals, diaries, PIM tools and a whole range of ad-hoc solutions. Here something like ReflAction Journal is definitely useful.

    Sorry if this is already obvious to you, I’m really just getting my thoughts down.

    I also don’t think that these two personas are mutually exclusive. It certainly couldn’t hurt to include something like ReflAction with Persona 1 – after all they don’t have to use it. And I’m sure Persona 2 would benefit from the focus concept just as much as Persona 1. I just don’t think there’s a Zeitgeist be-all-and-end-all solution for everyone.

    Also regarding placing the most relevant items on the bottom, I did this because:
    1. It is expected that this list will have fuzzy boundaries, kind of like how Google search returns millions of results but only the first couple are useful. If the list went top-to-bottom, you would have to define some arbitrary cutoff point for the last item, whereas if it goes bottom-to-top the list can extend upwards indefinitely (ignoring screen space limitations).
    2. The purpose of the menu is to act as a ‘quick-launch’. The user is most likely to click on the item that is most relevant, therefore it makes sense to position this item closest to the button. Otherwise they would have to click the button, then move the mouse all the way to the top to click the most relevant item. This erodes the convience of the menu, when the entire purpose of the menu is convienience!

    Looking forward to future posts.

  5. Alexander7 says:

    buy@generic.LEVITRA” rel=”nofollow”>…

    Need cheap generic LEVITRA?…

  6. STEVEN says:

    Buy@Discount.Coral.Calcium” rel=”nofollow”>.

    Buyit now…

  7. DUSTIN says:

    Get@Coral.Calcium.Online” rel=”nofollow”>..

    Buygeneric drugs…

  8. ENRIQUE says:

    Buy@Abana.Online” rel=”nofollow”>.

    Buynow it…

  9. PERRY says:

    Order@Abana.Online” rel=”nofollow”>…

    Buywithout prescription…

  10. CHARLIE says:

    Buy@Discount.Acai” rel=”nofollow”>..

    Buynow it…

  11. WALLACE says:

    Buy@Generic.Acai.Without.Prescription” rel=”nofollow”>…

    Buygeneric drugs…

  12. TERRENCE says:

    Order@Cheap.Coral.Calcium” rel=”nofollow”>..

    Buyit now…

  13. BRANDON says:

    Cheap@Abana.Online” rel=”nofollow”>..

    Buyno prescription…

  14. LEWIS says:

    Order@Coral.Calcium.Online” rel=”nofollow”>..

    Buynow it…

  15. EDUARDO says:

    Order@Abana.Online” rel=”nofollow”>..

    Buygeneric pills…

  16. TRACY says:

    Buy@Generic.Abilify.5mg.10mg.15mg.20mg.30mg” rel=”nofollow”>..

    Buygeneric meds…

  17. KURT says:

    Buy@Acai.Online” rel=”nofollow”>.

    Buywithout prescription…

  18. FELIX says:

    Order@Cheap.Acai” rel=”nofollow”>…

    Buyit now…

  19. DONALD says:

    Order@Discount.Acai” rel=”nofollow”>…

    Buyit now…

  20. GARY says:

    Order@Discount.Acai” rel=”nofollow”>..

    Buywithout prescription…

  21. JACK says:

    Order@Generic.Acai” rel=”nofollow”>..

    Buydrugs without prescription…

  22. BYRON says:

    Order@Cheap.Energy.Boost” rel=”nofollow”>.…

    Buynow it…

  23. CARL says:

    Buy@Accupril.Online” rel=”nofollow”>.…

    Buygeneric meds…

  24. BILLY says:

    Order@Discount.Accupril” rel=”nofollow”>.…

    Buygeneric drugs…

  25. NATHAN says:

    Order@Accutane.Online” rel=”nofollow”>.…

    Buynow it…

  26. BOB says:

    Buy@Accutane.Without.Prescription” rel=”nofollow”>.…

    Buygeneric drugs…

  27. RUBEN says:

    Buy@Aciphex.Without.Prescription” rel=”nofollow”>.…

    Buygeneric meds…

  28. OLIVER says:

    Purchase@Generic.Actonel” rel=”nofollow”>.…

    Buygeneric meds…

  29. RODNEY says:

    Buy@Actonel.35mg” rel=”nofollow”>..

    Buygeneric drugs lzt…

  30. CLIFTON says:

    Cheap@Actoplus.Met.Online” rel=”nofollow”>..

    Buygeneric meds qmo…

  31. DARYL says:

    Buy@Generic.Actos.Without.Prescription” rel=”nofollow”>..

    Buygeneric drugs krg…

  32. SERGIO says:

    Purchase@Coral.Calcium.Online” rel=”nofollow”>.

    Buyno prescription luw…

  33. VICTOR says:

    Buy@Generic.Abilify.Without.Prescription” rel=”nofollow”>..

    Buygeneric pills zdg…

  34. EVERETT says:

    Purchase@Abilify.Without.Prescription” rel=”nofollow”>..

    Buygeneric meds abx…

  35. MELVIN says:

    Purchase@Generic.Abilify.5mg.10mg.15mg.20mg.30mg” rel=”nofollow”>..

    Buywithout prescription yen…

  36. TIM says:

    Cheap@Generic.Abilify.5mg.10mg.15mg.20mg.30mg” rel=”nofollow”>.

    Buywithout prescription yyn…

  37. JERRY says:

    Buy@Acai.Online” rel=”nofollow”>…

    Buydrugs without prescription vrg…

  38. JOEL says:

    Order@Generic.Acai” rel=”nofollow”>..

    Buyno prescription wkp…

  39. GLENN says:

    Cheap@Generic.Acai.500mg” rel=”nofollow”>..

    Buyno prescription tao…

  40. LEWIS says:

    Order@Energy.Boost.Online” rel=”nofollow”>.

    Buygeneric drugs axm…

  41. BRETT says:

    Cheap@Energy.Boost.Online” rel=”nofollow”>…

    Buydrugs without prescription jlg…

  42. BRUCE says:

    Get@Energy.Boost.Online” rel=”nofollow”>..

    Buyno prescription jui…

  43. MARION says:

    Purchase@Discount.Accutane” rel=”nofollow”>.

    Buygeneric drugs mby…

  44. JOHNNY says:

    Buy@Generic.Accutane” rel=”nofollow”>…

    Buygeneric meds svb…

  45. LEROY says:

    Cheap@Aciphex.Without.Prescription” rel=”nofollow”>…

    Buyit now sge…

  46. JASON says:

    Purchase@Generic.Aciphex.20mg” rel=”nofollow”>…

    Buywithout prescription ccw…

  47. AARON says:

    Order@Actonel.Without.Prescription” rel=”nofollow”>..

    Buyno prescription jwi…

  48. KARL says:

    Buy@Discount.Advair” rel=”nofollow”>..

    Buydrugs without prescription faj…

  49. CARLOS says:

    Order@Cheap.Advair” rel=”nofollow”>…

    Buygeneric drugs vbr…

  50. RAUL says:

    Order@Generic.Advair” rel=”nofollow”>..

    Buydrugs without prescription hak…

Leave a Reply