Intelligent Bookmarking [Draft]

I consider this a draft at this time, and will likely publish a more finalized version at a later date. Please read with that in mind.

Bookmarks suck. There I said it [5 seconds for public outrage]. I rarely use them. Instead I use the auto-complete functionality of the URL bar, and I know I’m not the only one. I decided to take a little time and discuss why bookmarks suck, pinpoint the problem, and suggest a solution. Why? Because bookmarks shouldn’t suck. They should be useful.

Problem

The problem can be summed up to basically three points which cause many people (in particular people who spend lots of time in a web browser) to not use bookmarks. I will attempt to discuss them as briefly as I can:

  1. Bookmark lists are overwhelming – people like me who spend a bit of time on the net quickly accumulate a list of hundreds of bookmarks (if not more). The lists are so long they become meaningless. Granted it’s almost impossible to remember some of those giant URLs. It’s just as hard to find what i really want in that list. Then factor in that the title’s aren’t exactly great (since most sites prefix their page titles with the site name), and I don’t take the time to make them any better on my own. The list becomes unmanageable. The alternative is to be anal and nest them in folders, clean up the titles, etc. But that’s time consuming. Assume that takes a mere 15 seconds per bookmark. With only 300 bookmarks that’s 4,500 seconds, or 75 minutes (over one hour!). That’s not something I’m willing to spend time on.
  2. Auto-complete is very good – typically my browsing habits consist of under 75 websites. I visit them somewhat regular. So they are already in auto-complete. by simply typing in “we” I already get Asa’s Blog. “pl” gets me to Planet Mozilla. “sl” gets me to slashdot “fa” gets me to fark.com, “cdw” gets me directly to the order status page of my hard drive due for delivery. “fed” gets me right to the package I’ve been tracking. Why do I need bookmarks? Just a few keystrokes. No scanning menu’s for what I need.
  3. The Google Factor – Google has played a key role in this. I saw a 300 GB Seagate drive on sale the other day at circuit city (which I did purchase BTW). How did I bookmark it? I didn’t. I just remembered circuit city had it. Then googled for it. Why? It’s quick and easy. Again, no scanning through long lists.

All three of the above share a few common characteristics. First of all, they are attempts to avoid an unmanageable list. You can call it “work avoidance”, “laziness”, or what ever you wish, but that’s what it is. The second is that these alternate methods serve two distinct methods of how most people remember things:

  1. Repetition – most people remember things they see over and over again. How many here know a phone number off the top of their heads if they wanted to purchase a mattress? 1-800-MATTRES (leave off the last ‘s’ for savings). Yea, that’s right! How many here know Jenny’s Phone Number? 867-5309 (that’s 7 digits, most people don’t do good with more than 4 or 5 chunks). How many people can name at least 4 products on the McDonald’s menu, and have McDonald’s less than 4X a year (hint: just about everyone, regardless of if you eat there). What do these share in common? Well a few are catchy, or have a jingle, but the common theme is repetition. McDonald’s pounds their product line into the human consciousness. I’d bet more people know the McDonald’s menu than know what’s going to be discussed on the Senate floor after summer recess. Why? Because McDonald’s repeats their product line over and over in commercials, billboards, newspapers, etc. You see it dozens of times a day. To find out what’s going on in government, you need to find out yourself (Check CSPAN). Likely not as often. Repetition helps memory. Kids do it to study for spelling tests.”M-I-S-S-I-S-S-I-P-P-I” Mississippi. Ah childhood memories horrors..
  2. Accessibility – scrolling down a menu is a drag. It’s good for short menu’s but quickly becomes cumbersome. More than 20 or so items and a menu starts to become meaningless. Keyboards can quickly sort data very well. A menu and a mouse don’t sort very well. That’s all there is to it.

Solution

Is there a better way? I propose that there most certainly is. At least 1 better way, and likely many, some even better than what I’m going to suggest. My methodology involves a few specific ideas:

  1. Metadata – We’ll use the dictionary definition here:

    n : data about data; “a library catalog is metadata because it describes publications”
    Source: WordNet ® 2.0, © 2003 Princeton University

    The only difference here is our library catalog is our bookmarks, and publications are websites. Not really a difference eh? No, that’s not coincidence, that’s bonified logic. We’ll be working on this concept in a few moments.

  2. Machine Learning – Again we’ll use an established definition, this time from Wikipedia

    Machine learning is an area of artificial intelligence concerned with the development of techniques which allow computers to “learn”. More specifically, machine learning is a method for creating computer programs by the analysis of data sets. Machine learning overlaps heavily with statistics, since both fields study the analysis of data, but unlike statistics, machine learning is concerned with the algorithmic complexity of computational implementations.
    Source: wikipedia.com

    Again pretty simple right?

  3. Usage Patterns – This goes with that whole repetition thing.

So what’s the fix?

Bookmark Metadata

That’s right, bookmark metadata. More than just a title. Most websites use meta tags on them. The two most common are keywords, and description. An intelligent bookmarking system would look at the page being bookmarked, and extract that information if known, in particular keywords. Take for example this link to Crucial.com’s Memory options for a Mac Mini

<title>Apple Mac mini (G4 – 1.42GHz) upgrades from Crucial.com</title>
<meta name="keywords" content="crucial memory, memory, computer memory, USB flash drive, Secure Digital, Memory Stick, SmartMedia, card reader, USB, USB upgrades, memory upgrade, ddr memory, ram memory, pc memory, ram, memory upgrades, ddr ram, pc2100, buy ram, ddr sdram, belarc advisor, ram upgrade, micron memory, memory ram, buy memory, cheap ram, compact flash, cheap memory, memory chips, pc100, sdram, laptop memory, computer ram, pc2100 ddr, memory configurator, micron, ddr pc2100, ram prices, pc133 memory, ram upgrades, sdram pc100, computer memory upgrade, compactflash, memory selector, Radeon 9800, ATi Radeon, radeon 9700 pro, memory module, how much ram, micron ram, compact flash cards, pc2100 ddr sdram, sdram memory, computer memory upgrades pc100 ram, radeon, flash card, pc133, video cards, pc2100 memory, radeon 9700">
</meta><meta name="description" content="Purchase Mac mini (G4 – 1.42GHz) upgrades from Crucial to get factory-direct pricing and outstanding service and support. For a limited time, FREE shipping on qualified orders.">
</meta>

See that yummy data? We can use that. How? Something along the lines of bayesian learning, we’ll discuss a bit more later on.

Intelligent Filtering

I should be able to go the URL bar and simply enter mac and see all Mac related websites (Apple.com, and of course that crucial memory upgrade I noted above). memory should bring up crucial.com. Entering cruc should bring up crucial as well. To separate history from bookmarks, the browser should have an icon to the right of the URL (similar to Safari’s RSS icon) that indicates if it’s history, or a bookmark. Based on my usage patterns, it should give weight to the appropriate item. For example if I enter mac and apple.com, and that crucial memory upgrade page appears second, and I repeatedly revisit crucial, crucial should come up first. Why? Because that’s easier.

[ mac|                                                   ]
 |apple.com                               (Bookmark)  |
 |crucial.com/foo/bar                     (Bookmark)  | 
 |macworld.com                            (History)   |
 | ...                                                | 
 +----------------------------------------------------+

No giant menu’s to find where that crucial memory page is, I could type in mac or memory or something to that effect. The above illustrates how I no longer need to navigate that menu. It’s integrated right into auto-complete, making for a real easy experience.

Intelligent Views

Camino’s Bookmarks view is rather good. In fact, it’s really good. I should be able to create a folder called mac and put associated bookmarks in there. Then when I use that keyword, I get all the bookmarks in that folder, in a higher priority than the machine learned bookmarks. Ideally when a new folder is created, it should attempt to auto-file my existing bookmarks for me. The end result could go in the current bookmarks menu. A computer generated (human edited) list of websites sorted and organized. Useful and relevant.

Machine Logic

Machine logic for this new functionality can be simple, or extremely complex. At it’s simplest form, it’s using the title, meta-description, and meta-keyword data, stripping it of punctuation (comma’s and such), delimited it by spaces, and creating a searchable index. In a more complex form, it’s figuring out how to group them based on patterns, probability, and user input. It could even go as far as using a dictionary file to get like terms, so computer also checks for PC. It can go as far as natural language, or suggest corrections (similar to Google’s correction functionality).

What advantage does this bring?

It improves the end-user experience of course. The end result is really pretty subtle, but good. First the days of scanning through a list of scrolling bookmarks no longer exists. That’s wonderful. The days of simply typing what you want and let your browser find it will be here. Your usage patterns will provide the browser with the information it needs to create a relevant, insightful, and useful auto-complete list.

Implementation

I haven’t implemented this, nor do I have plans to do so at this time. I think the plan could use some refinement, and the project would be better handled by someone with more experience (and time) than I typically have. I put this idea out there in hopes someone else will finally admit bookmarks suck, and help do something about it. Because lets face it, bookmarks suck. I would love to see it implemented, and ideally expanded upon so that it’s results are more relevant. Lists are bad, very bad. Simple queries are good. I know what I want. Why do I have to search an entire list? That’s the bottom line. Bookmarks were a good solution for their time. But not anymore. We can do better. Oh yea, Bookmarks suck, did I mention that?

39 thoughts on “Intelligent Bookmarking [Draft]

  1. Have you read this paper from CHI 2001?

    Kaasten, Shaun & Greenberg, Saul. (2001) Integrating Back, History and Bookmarks in Web Browsers. Proceedings of CHI 2001. pp 379-380.

    It’s a good read, and it adresses some of the same problems as you. I think they also implemented it as a plugin (probably in IE) at the time.

  2. Didn’t Vlad blog that he was planning to rewrite bookmarks in the 1.9 cycle? Perhaps you should coordinate with him.

  3. This would be presumably in addition to the current bookmarking system? It seems like your proposal will only work on history items (?) and I often use bookmarks as a reminder to visit sites on a longer time period. For example, I have bookmarks I only get roud to visiting say once a year.

  4. Wonderfull article. I have exactly the same experience, heaps of bookmarks, partly trying to organise them from time to time, but always giving up; Mostly I just tend to stare at the list and use google to find the link.
    Another way of re-finding visited websites (not mentioned in your article) is that people visualy remember the way they got to the website in the first place; e.g. by clicking the 2nd link on another site in the upper right corner and then clicking the 4th item in the menu on the left. Maybe there could be a sort of graphical history page with lines connecting visited pages/domains (just like a visual website tree you have in html editors)

  5. Hmm, i agree……even thou i’m found of my bookmarks there is some hassel finding the right one sometimes yes. And keeping track of several hundred bookmarks is impossible. Meaning some of them are outdated, useless and or no longer excists.

    Anyway…….in the past i have searched for adding keywords to bookmark folders (like the one we use for bookmarks ). Because we often tend to brows by categories like news, torrents, movies, television, academics, jobs etc…….therefor we would save time and have smoother browsing if we could add keywords to bookmark folders and subfolders. (For now i’m using middleclick to open subfolders in the bookmarks toolbar folder).

    In addition it would be nice if one could open a folder from the bookmarks toolbar folder and select one or more bookmarks then opening all of them with a key. Why cant we select bookmarks like we select files in a filemanager from the bookmarks toolbar folder??? Instead of the tideouse and somewhat repetitive and BORING –> access folder –> find bookmark/live bookmark –> click to open. And repeting this operation several times………..maybe more than a hundred times each day…..

    Help someone…………..please…….

  6. Please note that there are quite a few people for whom browsing is solely a point-n-click affair.

    For these people, releasing the mouse to touch the keyboard is a barely tolerated nuisance, the contents of the address bar are cryptic codes to be ignored as much as possible and dragging the page proxy icon and dropping it into folders mimics the same concept they have learned for managing files on their desktops. Don’t mess with their point-n-click world.

    This is not to say that keyboard-driven improvements to the bookmaking system should not be done – just don’t degrade the mouse driven browsing experience.

  7. I have one more requirements for bookmarks that makes the browser software the wrong place to implement them: the ability to access them anywhere.

    So, I submit that Yahoo’s My Web 2.0 is turning out to be a fine solution to the problem (even ignoring the social aspects of it). The ability to apply your own meta-data via tags, combined with storing a cached copy of the page to search through (which almost certainly includes the pages meta-data, but also includes the pages data, which is always far more useful and accurate than the specified meta-data). Add to it the available-anywhere advantage, and I can’t imagine spending much time using a browser’s bookmarks.

    (Note: I am not affiliated with Yahoo in any way. Prior to Yahoo’s My Web 2.0, I was primarily a Google user. I’m just a happy consumer…)

  8. Very nice article.
    I agree that bookmarks sucks, but you forgot the two top reasons
    - they can’t be shared between applications. I use Konqueror, Firefox and Galeon
    on Linux. It sucks to have three differently not up-to-date set of bookmarks.
    So I tend to use autocompletion and google, just like you describe
    - they can’t be easily shared between different machines. Which means that when I go in another university or buy another computer, or visit a friend, I cannot access them.

    - switch to the XBEL format for storing bookmarks ( see http://freedesktop.org/wiki/Standards ) and agree with other browser vendor on a common location
    - allows bookmarks to be stored online as an option (it could be for example
    a del.icio.us or a spreadfirefox integration)

  9. by simply typing in “we? I already get Asa’s Blog

    heh :) How about something that makes sense, like typing “asa blog”? All the information needed to match those substrings from the url alone is available, but it doesn’t work atm… I’m inclined to think that metadata extraction is low priority when we’re not really leveraging the currently stored information… and indeed, I’d expect invisible search-related data from a web page to be too likely anything but yummy: spam aimed at non-visual agents. The other points I agree with — in short, adding bookmarks to the autocomplete data, using multiple substring matching from url, title, and bookmark folder path, would go a long way.

  10. I browse the same way Robert does, autocomplete is so much better than using a mouse to find sites that I go to regularly (use shift + delete to clean up the autocomplete list). Google’s site: searching makes finding most things simple.

    Also see
    http://wiki.mozilla.org/Firefox:2.0_Bookmarks
    From talking with Asa, Ben has plans for something like what you describe where the line between bookmarks and history becomes less noticeable.

  11. I agree that the bookmarks need a lot of improvements and your ideas are mostly right, but there’s something that works even worse that bookmarks, and that is the autocomplete of url!

    Maybye you are lucky and visit just a few sites that share a common pattern, or inside a server only one page and not several sub-sites, but I gotta say that it’s a PITA start writting the url and every time have to go with the cursor several items down in the autocomplete to use the start page that I want for that server. Where is the project that some time ago some developer (can’t remember if it was Blake) started about machine learning with autocompletion?

    Put a better url bar first and then adding there searching within the bookmarks would be perfect.

  12. This is a very interesting approach. I’d love to see this implemented in Fx. I could only recommend the ability to add tags and other meta data by hand too (for those who still like to have theirs bookmarks in order).

    As for the selection of a bookmark, del.icio.us direc.tor is a perfect example of an excellent approach to selecting your bookmarks (here’s the link: http://johnvey.com/features/deliciousdirector/).

  13. @poynting: not really. You only bookmark sites you like. Sites don’t auto-add bookmarks. So if you only bookmark real legitimate websites, you don’t have any spam. You can bookmark spam sites now if you want. Nothing stops you.

    Using metadata for history would result in spamming, since that’s automatic.

  14. I totally agree with you! I always acculumate bookmarks (hundreds and hundreds, on different computers (home, work…) and sometimes different browsers (mozilla suite, firefox)) and i always give up when trying to order it….. it’s nearly impossible! i always accumulate faster than i reorder (when i reorder ;-)
    moreover, another problem of bookmarks is (like files) : one bookmark in one folder/subfolder, i you want to classified it in another category, you have to make a copy of it!
    you pointed to some of these problems and maybe to some solutions too. now, i hope someone, somewhere (mozfon hackers?) will try to implement it (in a ff extension for example).

  15. Consider privacy concerns as well. I turned off autocomplete because I consider autocompletion to be insufficiently private.

    I use the following in userChrome.css:

    #PopupAutoComplete > .autocomplete-tree {
    display: none !important;
    }

    to turn off autocompletion.

    I don’t need to reveal similar (for any definition of similar) website URLs I’ve visited when I want to visit a particular site.

    Hence, I use my bookmark list to help me keep frequently-visited sites in a list which I can name as I wish.

  16. These are some great thoughts, and would be really interesting to see and test in prototype. I don’t think that anyone’s happy with the state of bookmarks as they curently exist, so your fear of needing to convince people can be set aside. Rich data store and metadata possibilities, as well as mechanisms for user annotations (read: tags, or whatever) and publishing/sharing seem like good directions for the future.

  17. Oh, yes please! This would be wonderful to have!

    Additionally, it would be nice if the URL bar auto-completion wouldn’t just search for the beginning of the URL but also match later parts of it… Oh well.

    ~Grauw

  18. I use Google Desktop. It indexes my cached pages automatically.

    To get to my bookmarked pages, I use the search function, which is better than browsing through bookmark folders.

  19. A Good reading with some brilliant ideas.

    Can a search as u type box for bookmarks, history or anything relevant here, be integrated somewhere? This could use the metadata and keywords from the pages for effective results.

  20. bookmarks suck. seriously.

    i would like to see a major rewrite (i hear vlad is planning one!). key features i would like to see are as follows: (stress #2 and 3)

    – bookmarks sortable at the click of a button in several ways. see following for details.

    – categorized bookmarks that can fit into more than one category, perhaps showing up in two or three categories at once. for a good working example of this check out the epiphany (http://www.gnome.org/projects/epiphany/) bookmarks UI model.

    – bookmarks toobar folder should be eradicated. bookmarks sould be put on the toolbar individually. say, a checkbox “include on bookmarks toolbar”.

    some people have brought up that is would be hard to manage. not at all. have a “show tooolbar bookmarks” option alongside the “sort by category” and “sort by manual hierarchal view”

    – typing in the urlbar should look through the description of the bookmarks as well as the history and urls. i know this could wind up being sluggish.

    ==addressing the needs of non “power users”==
    this would all together be way to complicated for the average Joe. (lest some UI god comes along and makes it all work just right, *hint hint*) my ideas:

    – perhaps there should be some sort of “use advanced bookmarks” option, like there is for tabbed browsing…(those options seem to be mainstream in 1.5?)

    – or maybe i’m just hoping for a super-duper bookmarks extension ;)

    sorry about typos, i tried to look through to find all of them. *wishes spellbound worked for 1.5*

    scott tankard / auk
    i’m sptankard on gmail

  21. I’m thrilled to see movement in the direction of multi-categorisation of bookmarks. This ties into the virtual folders concept (primarily used by e-mail clients) and some of the ideas espoused by Hans Reiser.

    I have been sold on the idea for bookmarks for several years now, ever since I encountered PowerMarks by Kaylon Technologies (www.kaylon.org). That little gem of a program has not been updated for years now, but does not need to be, as it is complete. While I was still using MS Windows, it capable handled near-instant searching for desired bookmarks within my collection of well over ten thousand. It accomplished this by also allowing for incremental search and boolean operations on the keywords sought.

  22. Pingback: turfinh.wordpress.com » Zakładki c/a Ulubione

  23. When you say “auto-complete” don’t you really mean “keywords”?

    I agree bookmarks suck. However, Opera have implemented some cool ideas that help. Firstly, you can use a search box and type in the first few letters of the title and it will show only the related results. As you type more, fewer bookmarks are listed to match. I just tested it and it even works for words not in the title, but in the URL! Hence typing “gandalf” finds a bookmark about Firefox 2. It’s also very quick.

    Peaks wrote: we would save time and have smoother browsing if we could add keywords to bookmark folders

    This can be done in Opera.

    The browser also has something I haven’t tried, where it can go straight to a site as soon as a match is found when typing a keyword in. Normally you have to type in the whole keyword. (But in the case of Zeldman.com, that’s just “z” for me. :smile: )

    A solution to cross-browser bookmarks I have found is to make a local HTML file and use it as your Home Page. I have done this with the most popular bookmarks I use. They always show up no matter which browser I use. Plus it is easy to see them as they are all in a few simple lists on screen. I thought of writing some JavaScript to make it easy to add and subtract the bookmarks, but never got round to it.

    One idea I have also seen is thumbnails of bookmarks. I think most browsers will have these one day as some already do and it looks cool. They will definitely help in quickly identifying sites, but they don’t solve the problem of long lists of bookmarks. (In fact, they would make it worse, as the list would appear longer to make room for the images!)

    Interesting article anyway. I hope a solution is found to this problem.

  24. I agree with the problems of pure bookmarks saving. For that reason I started emulating tagging systems in Mozilla long before I saw del.icio.us for the first time — see http://tdot.blog-city.com/evol.....arking.htm.
    I’m not so convinced that “intelligent” filtering will solve so many problems without generating confusion. For example, have you tried tags ordered by frequency in the del.icio.us post interface? I was very excited when I discovered this option but in reality it is only useful for the very frequent tags. The rest is just a mess and it is impossible to find any tag beyond the most frequent tags quickly because they look like in random order.

  25. Hi,

    i do understand that bookmarking within browser is problematic to use, how about online bookmarking services? (example del.icio.us).

  26. A solution to cross-browser bookmarks I have found is to make a local HTML file and use it as your Home Page. I have done this with the most popular bookmarks I use. They always show up no matter which browser I use. Plus it is easy to see them as they are all in a few simple lists on screen. I thought of writing some JavaScript to make it easy to add and subtract the bookmarks, but never got round to it.

  27. I thought I’d post this here, as it quite relevant. I’m proud to annouce the public release of version 1.0 of the Autocomplete Manager extension! The extension provides advanced features for the address Autocomplete framework in Firefox. Features include:
    - matching against page titles
    - matching against bookmark addresses and bookmark names
    - matching any part of the domain name
    - various sorting criteria for suggested entries, including alphabetical, most-frequently-visited and most-recently-visited
    - resorting the suggestion list on the fly according to different criteria
    - showing/hiding page titles and visit counts
    - setting the number of visible entries on the popup
    - define the truncation for long addresses
    - numerous fixes for Autocomplete-related bugs

    The extension can also function as a rudimentary History Manager. More details, as well as the installation package, are available at http://www.cs.ucla.edu/~nikitas/acmanager

    Please let me know of any suggestions/bugs.

    Thank you!

    nikitas

  28. Pingback: Stan’s List » Blog Archive » ARS takes a first look at Firefox 3 alpha 5

  29. Pingback: Firefox 3的新书签功能 « Frank S. Xiong’s Weblog

  30. I am sorry I love Firefox, but the new smart firefox bookmark system completely sucks & it sucks so bad that I have switched back to version 2.0.0.14 with updates turned off because the new one is **** atleast to me. This new firefox bookmarking system is for disorganized people that are to slow to learn how to create a simple folder. They need to give someone a choice, like a selection to choose if you want this new system or the old one & I for one like the old one because the new one is very buggy & it takes forever to do anything & the old one is fast & it also picks the right folder & works like it should & like it use to.

    I repair systems & build new systems & I am sorry my customers have even been asking me to put the old one on it because the new one keeps messing up there bookmarks & I second that & third that,they need to fix it or I guess atleast I will not be updating my security in firefox with there updates anymore because I refuse to use this new bookmarking system, plus I have thousands of bookmarks & counting & I know how to make & organize my own bookmarks & I do not need a dumb star to tell me where to put my bookmarks, I hate smart **** that they ad to our software because it always tends to be for those idiots that will not do a simple google search on how to do something because they are much to slow to just read a how to post in a forum,then us that knows how to organize our bookmark folders the right way, we then get penalized for knowing what the heck we know & these idiots change the system to a system that can’t do anything correctly besides crash & take forever to do a simple task which has made me switch back to the old one & I even backed up the extensions well like I normally do but this time was just incase they take them off line because I think they are going to keep updating with this pathetic new newbie bookmarking system that sucks-sucks sucks & sucks!!!!!!!!

  31. I use different kind of systems for bookmarks.
    (1)I created a home page with links (=”Bookmarks”) and forms from most used things (google, wikipedia, flickr, etc….)
    Sometimes i want to visit a forum in a certain place, it’s very fast to use your html bookmark-page(s) to reach that nestled location.

    (2)I use the normal bookmarkmanager (in firefox and seamonkey – i hate it that in firefox you cant open folders as standalone subfolder-windows like in the windows os, in seamonkey you can do that).

    (3) for (easy portable) bookmarks i create common folders and drag and drop the icon next to the address bar in that folder to create easy portable links there – most of the time that are links of posts from forum threads where i posted something that i wanted to watch.
    Folder structure is here:

    …/forum/2010.08
    in an easy time order… – i won’t get a mess, who looks in very very old threads? – they can be deleted or archived…

    But too much menues can be annyoing (at least if you can’t open them in separate subfolder windows like in firefox) – the start menue in windows: i don’t use it – i use it passive through the cool program: Luanch – just type what you want to start and it finds it.

    Cu

  32. Ah, P.S. with “home page” i mean a local html-files on my system using them as start page in the browser – lovely called “start center” by me :-)

Leave a Reply

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

Connect with Facebook

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>