You May Have Too Many Domain Names When…

… you have to phone Chase in the middle of the night to say the $600 charge to GoDaddy was authorized and it was a very good deal, too, thank you very much.

A few dozen domains times two year renewal adds up really, really quickly…  (I actually paid GoDaddy $160 to become a member of their buyer’s club for two years, which knocks some money off the cost of domains.  In particular, for whatever reason, .net domains get a 53% discount off the list price.  Considering I own over a dozen of the suckers and they’re normally fairly expensive, that was enough to justify the membership by itself.)

Which reminds me — I really need to get some freelancers to help me fill these things out.

Comments Off

Minor Lessons from A/B Testing

I am going hog wild with A/B testing now that I have an easy way to do it.  I thought I’d share some of the results:

  • Login as guest link vs. No login as guest link:  There is no significant difference in the number of trial signups I get if I put a discrete login as guest link on the registration form.  There is, however, a massive decrease in the number of guests (obviously, they have to decline by at least 50%, right?).  While I don’t get nearly any economic value out of guests, I reverted to allowing them.
  • Asking for permission to email versus not : There is no significant difference in the number of trial signups I get if I show or hide the two checkboxes for signing up for the mailing list.  Note that I still ask people for their email address (which I use for a username, figuring this is easiest for non-technical people to remember) and that I, stupidly, included the “We do not spam you” verbiage in the block excised for the test.  That should have been left in both alternatives.  Ahh well, I’ll do it again properly later.
  • Reordering buttons:   Reordering the bingo card pages (see example) to include the Make Your Own Cards (which leads to a trial registration dialogue) over the Download These Cards buttons increases the conversion to the trial from 11.90% to 19.82%, which was significant at the 90% confidence level.  Yay, a positive result!  I ended the test and adopted that behavior as the default.

What I’m testing currently:

  • A new version of the purchasing page, which is specific to the online version only, for people who are logged into the online version (versus the current purchasing page).  Obviously I’m looking for actual sales as a conversion here.
  • The effect of the text “It is quick and easy to get started!” versus “There is nothing to download and no credit card required.” on the landing page.  (Quick and easy are two concepts that have worked very well in my AdWords before.)
Comments Off

$50,000 of Bingo Card Creator

I passed a bit of a milestone yesterday: I’ve sold $50,000 of Bingo Card Creator.

It is an arbitrary and meaningless milestone, but it put a smile on my face nonetheless.  I’m cautiously optimistic that the next $50,000 won’t take 3 years.  (Profits before taxes are somewhere in the $27,000 range if I’ve managed to tally all my receipts correctly — always unlikely until tax time rolls around.)

Wish me luck — the school year sales started this week and it appears that I will be moving out of the summer doldrums in style.  The online version is converting very well (1.7% of all trials, including a large portion of trials that wouldn’t reasonably have converted yet because it is too early).  My new ad campaigns are posting my highest conversion rates ever, courtesy of the online version being easy to sign up for.  My first newsletter, sent yesterday via Mailchimp, resulted in 2 sales ($60) for about $2 worth of email postage.

All in all, things are going pretty well business-wise.  More updates as they happen.

Comments Off

Introducing A/Bingo: Rails Split Testing

Regular readers of this blog know I’m a bit obsessive about testing and measuring small, iterative improvements to my website.  Previously I used Google Website Optimizer but I found it had some annoying limitations.  In particular, it was too much work to start tests, too much work to code tests, and too much work to maintain expired URLs after tests were over. 

So I went away to the code salt mines for the last week, and coded my own A/B testing framework in Ruby on Rails.  It is called A/Bingo .  (The name sort of popped into my head and wouldn’t leave.  It is a pun, it relates to my business and personal brand, and it gives the impression of Hitting the Target that successful testing should give you.  My designer took that and ran with it for the logo.  I’m very impressed with the results.

A/Bingo is, without question, the most technically impressive code I’ve ever written.

  • Setting up a test takes one line of code.  It is so easy you’ll find yourself doing it automatically when writing copy or making new features.
  • It tracks absolutely any event as a conversion, in one line of code.
  • It does statistical significance testing for you, producing human-readable output which tells you exactly how confident you can be that the test results are accurate.
  • It is fast.  No, it is fast.  Like, “A/Bingo could handle being linked from the front page of a social news site.  Heck, it could be used on the front page of many social news sites.”

If you want to read any more about it, I encourage you to take a look at the website.  A/Bingo is already powering all the Bingo Card Creator A/B tests.  I expect that the ease of use and copious features will mean I run a lot more tests.  I’ll continue sharing what I learn through them. 

P.S. Incidentally, I scored a 16.9% improvement to funnel completion thanks to Mixpanel.

Comments Off

Update: Landing Page Redesign Successful

Recently I blogged about how I was redesigning my landing page to increase conversions from AdWords.  I am almost embarassed how well this is working.

That picture pretty much tells the story: for the last 1,000 visitors, the One True Goal button got over 180 clicks, and the (equivalent) sign up free link above it picked up another 40.  When you add in the (not pictured) ways to convert lower on the page, plus ad back in the folks who went off to the home page but ended up converting to the trial later, the conversion rate is about 28%.  Yowza!  For comparison, I generally do well to get 21 to 22% on AdWords.

This means that the same number of impressions results in a third more trial downloads for me, and hopefully thus a third more sales.  Or, to phrase it another way, the cost of customer acquisition for me just declined by about 25%, which is good because AdWords is my largest expense by far.

Because of how Conversion Optimizer works (Google automatically adjusts your CPC bid to target your proposed CPA target), this likely means that over the next few weeks Google will increase the CPC bid I give for placement on sites like About.com and whatnot.  That should increase the number of impressions (and hence, clicks and conversions) that I get.  Cross your fingers for me.

Photo credit to CrazyEgg, obviously.

Comments Off

Using Mixpanel With Ruby on Rails

I wrote up a fairly lengthy article on how to use Mixpanel with Ruby on Rails.  Mixpanel is a new analytics service I’ve been playing around with for the last week or so.  It is probably slightly more technically involved than most uISVs would care for, but the funnel tracking is solid gold.  You can see some changes that lead me to making for BCC, too.

As always, I’d love to hear your comments.  (I am on a bit of an optimization kick lately, aren’t I.  Got to get ready for the school year!  Three more weeks or so and I won’t be able to break the website NEARLY so often.)

Comments Off

Landing Page Design Tips

Recently, I finally got around to making a proper landing page for Bingo Card Creator.  It has been fairly successful for me so far, increasing conversions markedly (my historical average for AdWords is about 18%, that page converts at about 28%) and decreasing my cost per conversion.

Here’s what I think I did right:

Focus On A Single Goal

The stock Bingo Card Creator homepage, which has been the landing page for all of my advertising since time immemorial, has to serve a lot of purposes at once.  It signs people up for the trial.  It drives people to the download.  It sells the benefits of Bingo Card Creator.  It provides an entry-way into support.  It lets people log in.  It funnels around link juice for SEO purposes.  It, like the prototypical uISV, wears fourty-seven hats.

Landing pages should have one goal.  My new one aims to capture a sign-up to the trial of the online version of the software.  That is it.

To accomplish this:

  1. Strip out all navigation which conflicts with The One True Goal.
  2. Eliminate visual distractions from The One True Goal.
  3. Make it absolutely, blazingly visually obvious what The One True Goal is.

If you guessed that the goal for the page is clicking either the giant purple button or the single visible hyperlink, you win!

Include Trust Markers

Bob Walsh has gone over this a million times referring to his MicroISV Sites that Sell book: testimonials work.  I have never really used them to their full potential, but I have diligently collected a little notebook (with permission, naturally) from my 1,800-odd customers. This gives me a bit of a palette to work with.  While normally I personally prefer hitting customers with a few testimonials at a time, like this wonderful example, I didn’t have too much space to work with.  So I picked a single testimonial, lightly edited for length and content, and bolded the important bits.

I cannot stress enough how much people do not read on the Internet.  Accordingly, if you want to maximize your sales, you should adapt to users that:

  • skim more than they read
  • feel more than they think
  • enjoy bad self-referential humor  (OK, this one is optional).

Seriously speaking: bold the bits of the testimonials which sell your software.  Cut the bits that don’t, as long as you can do so without making the testimonial say something the customer did not.  They are not professional marketers and should not be expected to write like them.  You are, so give them a minor hand.  (Polishing it until it is too good is another danger.  Testimonials should remain authentic.)

It should go without saying but in addition to reflecting on you, a testimonial reflects on your customer.  Even if you are making them largely anonymous, extend them the courtesy of copy edits to make their words suitable for public distribution.  If I never see [sic] in a testimonial again it will be too soon.

Don’t Forget the Guarantee

I don’t feel like elaborating on this, other than to say I once walked out the door without pants on.  That is a pretty serious oversight, but it still isn’t as bad as forgetting your trusty money-back guarantee.

Address Your Shadow Audience

Google likes to see certain things on landing pages and hates to see others.  You really don’t want to tick them off.  Most of my readers are honest businessmen, which automatically saves you a lot of the headaches, but there are a few subtleties:

  1. Trust markers like a privacy policy, return policy, etc go a long way.
  2. Don’t look like an affiliate.  Google is very ambivalent about affiliates — they make billions off of them, but to the maximum extent possible Google would rather disintermediate the affiliate, because they feel that a) it provides a better customer experience and b) Google should be getting the money the affiliate does.
  3. Landing pages have a tendency to repeat large swathes of text, which could cause duplicate content problems for your site.  This is particularly acute if you build them on an industrial scale (about which I will have more to say later).  Save yourself some pain and either exclude your landing pages from the index using robots.txt or include the following code in your header somewhere:
<meta name="googlebot" content="noindex, noarchive, nosnippet">

Technically speaking there are more search engines than Google to worry about.  Hah.  Sorry, where was I.

Provide Continuity

Marketers sometimes say “information scent”, but I like continuity: seeing your ad, clicking on your ad, reading your landing page, and then interaction with The One True Goal should be one continuous flow, free of jarring transitions and mental static.  For example, you should have your ad call to action anticipate the call to action text on your landing page.  Thus:

Notice how I’m focused on the proposition of “quickly”, with the call to action “Try now, no download required!”

That matches my call to action on the landing page:

This means that for a large portion of my visitors, I get the click to the purple “for free” : they’re already mentally invested in trying now, no download required.  That is why they came here.  So I don’t have to convince them so much with the other text on the page.

Of course, that doesn’t help much if I lose them at the signup form.  Candidly, my signup form could use some work — it performs much, much better than my download/install rigamarole ever did, but it severely needs a graphical upgrade and some interaction design TLC.  However, there is one trick to it that I’m fairly happy about.  I’ll share that with you guys this weekend, as it is a little subtle and I want to collect a few more days of data to show you that it actually works.

Preview of coming attractions: I have often said that paying a freelancer to write content for my website was probably my best ROI ever.  This resulted in over 700 pages which are very responsive to exactly what searchers want.  What if it had also resulted in 700 ads?

Comments Off

My AdWords Are Turned Off [Edit: Resolved]

[Edited to add: My campaign returned to mostly normal on August 4th or thereabouts.  I still don’t know what the heck happened, but I’m happy things are normal.  I sent Google a second support request, but that may or may not have had anything to do with the fixing: it was not responded to.  I also added two additional ads (which both triggered a human review), upped my bids, and in general tried to flag the system to say “Hey system, new stuff here!”, so that may or may not have had something to do with it.  My current feelings about Google, on a 1 to 10 scale: performance of platform: 8, superiority over competing ad options: 10, support responsiveness: 3.  That 3 is generous, based on my completely unevidenced thought that it is possible someone inside Google actually saw the problem and intervened.  At the moment, though, I have as convincing evidence for the existence of Google technical support as I have evidence for the existence of Santa Claus — luckily for Google, in my heart of hearts, I still believe in Santa Claus.]

High on the list of things to do today was try my hand at making my first landing page.  I have recently started selling my product as an online web application in addition to downloadable software, and wanted to see if focusing pages on one or the other would improve my conversion rates.

Naturally, I had to log into AdWords to create the alternate ads to test this landing page against my usual ads, which just dump people at my homepage.  Since AdWords is very fire and forget for me (yay, Conversion Optimizer) I don’t log in more than once a month.  Thus, I hadn’t known that since July 23rd they’ve been ratcheted down from “most schoolteachers are out for summer so you’re only getting 10k impressions a day” to “almost turned off so you’re getting 20 impressions per day”.  Since AdWords account for a large portion of my sales this is, to be blunt, absolutely terrifying.

Delving Deep Into Black Magic

AdWords includes a variety of automated means to diagnose why your ads aren’t showing.  They provided the very useful advice “It is because you haven’t input a valid means of payment yet.”  Google, the charge for $200 yesterday went through as swimmingly as the last $12,000 have gone.  You have my freaking credit card on file.

This left me with another alternative, contacting AdWords support.  Google really buries the email us button (behind useful automated diagnostics like the above, and equally helpful FAQ entries) because Google hates dealing with customers.  We’re little annoying things that don’t scale well when we can’t be handled perfectly algorithmically like all the world’s information (TM).  Stories about how their support is incompetent and outright hostile to speaking to customers are legion.

I say this as someone who is a fan of Google.  Full disclosure: I am a case study about AdWords’ effectiveness.  Literally.  When the system is operational it rocks my socks off, but when it goes off the rails you are screwed.

They’ve improved response times since the last time I used them.  It took me less than an hour to get a response.  (Aside: Last time it took almost two days to hear from them when I wrote in to complain about one of my ads being disapproved.  That time I got copy/pasted a portion from their TOS implying that St. Patrick’s Day bingo cards were gambling paraphenelia.  It took three back-and-forth emails before I convinced them that I am, in fact, not in the gambling business and if they read that cough Google case study cough they would see that.  But the ad missed St. Patrick’s Day, which rather sharply limited its commercial utility to me.)

AdWords Support: Like Talking To A Markov Chain

My email (which was limited to 512 characters, because Google apparently after indexing the entire freaking Internet Google didn’t have enough hard disk space in BigTable to save bug reports of a useful length) explained who I was, what behavior I had seen (ad impressions down by a factor of a thousand), what behavior I had expected (ad impressions not down by a factor of a thousand), what factors I had already ruled out (disapproved ads, sudden CTR decrease, sudden conversion rate decrease, payments issues, quality score issues, etc, etc), and what resolution I wanted (a fix or cause that I could fix myself).

Here’s what the Googleplex Markov chain spit back:

It looks like you have some questions about your ad rank.

Translation: I did not even pretend to read your email, or else am unaware that the Content Network has no concept of ad rank per se.

In the future, you may find that the quickest way to find the answer to your question is
 through the Help Center at https://adwords.google.com/support/?hl=en_US?utm_id=hc. Or, try the
 AdWords Help Forum at http://www.google.com/support/forum/p/AdWords?hl=en?utm_id=aut, where you
 can share information and exchange ideas with other advertisers.

Translation: We really hate when you email us.  Please don’t.

Please note that it's possible your account may be under review. As you
may be aware, we periodically perform these reviews to ensure the highest
quality ads, verify billing information, and maintain general account
security. Per our Terms and Conditions
(https://adwords.google.com/select/tsandcsfinder), ads can undergo review
at any time. If your account is under review, we will get back to you
shortly.

Translation: You may be evil.  We don’t do evil, hence, we don’t do you.  You may not be evil — that would be a good thing, but we still hate talking to you.  If you’re evil, we kind of have to talk to you.  If not, whee, we don’t have to talk to you, so don’t be evil.

For your convenience, we've listed some relevant information below:

Translation: Here are twenty random links from our knowledge base.  Despite our expertise at ordering the world’s information, they are neither relevant nor even plausibly related to your inquiry, and most are an insult to your intelligence.    They won’t resolve your problem, but possibly they’ll stop you from trying to email Google again, which is our ultimate goal.

The uselessness of some of their suggestions beggars belief.  “Why do the same ads show on different pages?” Well, I didn’t click, but I’m going to guess that the reason the same ads show on different pages is because I paid $10,000 to have Google put my ads on their Content Network.  If my ads were not showing on different pages, that would be a problem.  Oh, guess what — they aren’t!

Sincerely,
The Google AdWords Team

Translation: You weren’t even worth enough of our time to have one of our $6 an hour Indian callcenter employees sign her name to this.

What I Think Went Wrong

While waiting for the (as expected) useless reply from Google, I played forensic investigator with my stats from this year and last year.  Everything looked nominal — in particular, Conversion Optimizer is sensitive to conversion rates so if your website suddenly stops converting, you’ll find your ads turned off in short order.  (That is what you’re paying them for, after all.) I verified that my trial download was still converting as expected.  Yep, code present in pages, yep, code evaluating, yep, conversions reported in AdWords so Google must be getting the data.

Then I tried it for the online version.  The online version scores a conversion any time someone signs up for the trial and logs in successfully (that should be automatic on signup, but you never know, particularly with bots).  To prevent the same person from getting scored as a conversion every time they log in (which would cost me gratuitous amounts of money), I have Rails set up so that only on their first login after signup they get sent to a welcome action.  The welcome action, in addition to doing a bit of housekeeping, is supposed to set the @welcome instance variable so that the post-sign-in page knows to display the conversion tracking Javascript.

def welcome
#Snipped a portion not relevant to this discussion.
@welcome
dashboard
render :action =&gt; 'dashboard'
end

This is a Rails idiom that runs the dashboard method and then renders the dashboard action, so that the welcome-specific code gets executed and then the shared template gets called.  Did you spot the bug?  Yep, that @welcome really needs to be initialized to true.  I’m not quite sure how this got by testing but it would be easy to miss — the page will display fine and all the functionality works perfectly, it is just that Google fails to get a wee little ping to credit my account with a conversion.  Which I didn’t notice since my download page continued to ping as usual.

I’m not even sure this was the problem.  Even with the online trial siphoning off conversions that should have been credited, my conversion rate for July was close to historical norms (the online trial was largely adding conversions, not replacing them).  The issue with conversion siphoning in Conversion Optimizer is if you don’t score conversions then your apparent Cost Per Action goes up, and if that routinely exceeds your maximum desired CPA then they won’t bid for you anymore.  However, my CPA stayed at the usual level for the 3 weeks where a portion of conversions weren’t scored, prior to my ads not showing.

What Next

Well, since I fixed the bug, I’m sort of in a wait-and-see mode.  If their algorithms auto-correct me back to my previous status, then life is peaches and cream again.  I also went ahead and scheduled a few new ads with my new landing page, which should start with very little “history”, positive or negative, so they’ll largely not be effected by this.  I know Google heavily biases their historical computations to consider recent history rather than overall account history, so I’m a little worried about making a full recovery.

And I’m blogging about this, obviously, because I want anybody else in the same situation to have some support which is not a Markov Chain.

10 Comments

Keeping The User Moving Towards Conversion

Recently on the Business of Software forums I gave someone advice regarding web design.  (I seriously, seriously envy his design prowess — the website for his VST host software is one of the best I have ever seen for a microISV.)  One issue I identified with his site was that at some points it lacked clear direction as to what to do next.

On reflection, there is a gaping hole in my own site design for this: the big screenshot on the front page.  It is ginormous and consistently picks up over 10% of the clicks on the page.  Clicking on it currently brings up a maximized version of the screenshot in a lightbox.  The lightbox is a wonderful effect, but what is the user supposed to do with the maximized version?

Well, ideally, they’re supposed to close that screenshot, then find the Free Trial or Try Online buttons and download.  Blech!  That is two more clicks, bringing to three the total of clicks they have made to my page!  Clearly, there is an opportunity to eliminate a click. All I need to do is bring the buttons to them, in the constrained environment of the lightbox.  (I’ve always wanted to do this but didn’t have any convenient way to do it with my previous lightbox technology, and never got around to doing it after moving to a less constrained lightbox script.)

I have pushed the new and improved version of the page live.   If this post was published recently, you can see the old version here.  For obvious usability wins like this one, I’m not going to bother A/B testing prior to pushing it live.  (Plus I have a lot on my plate tomorrow in terms of non-obvious things, and running multivariate testing scares me.)

Comments Off

Practical Conversion Tips For Selling Software

Today after reading a thread or three and watching a Google-produced movie about landing page optimization (over an hour long and worth your time) I was inspired to make some changes to my site.  Recently I have been doing far more development than A/B testing, and truth be known I don’t really, um, know how my funnel is working these days.  So I went back into the archives of my CrazyEgg tests and looked around to see if there was anything that jumped out at me. The fresh look caused me to pick up on a few things:

Plug Your Leaking Funnel

If you’ve ever read anything about conversion optimization you’ve heard the funnel metaphor : the steps towards buying can be thought of as a funnel, where a lot of people come in at the top and as they move forward you see less and less people until a mere trickle actually succeed in giving you money.  You want your funnel to avoid leakage, to the maximum extent possible.

Bingo Card Creator has a fairly typical funnel:

Prospect sees me in search engine or ad -> Prospect clicks to homepage -> Prospect downloads trial (or signs up for online trial) -> Prospect plays around with trial -> Prospect likes what they see -> Prospect clicks on purchasing page -> Prospect interacts with shopping cart -> Prospect gets redirected to Paypal or Google Checkout -> Prospect fills out form -> I get money.

Yikes, saying it like that makes it sound even longer than it actually is.  Anyhow, every step is crucial because the effects are multiplicative: a 5% improvement anywhere essentially results in 5% straight to the bottom line.  (Hat tip to Steve Pavlina for this insight, which is probably one of the three most important things I know about selling software.)

Anyhow, I picked a step in the funnel where I see a lot of dieoff, the purchasing page, and took a gander to see if there were any obvious ways to improve it.  Looking at several experiments in CrazyEgg, which I collected over the course of the last few years, something jumped out at me.  See if you can spot it in these heat maps:

Early 2007:

Early 2008:

Early 2009:

Did you spot it?

Far too many users interact with the main navigation bar to go backwards in the funnel.  Despite the fact that the overwhelming majority of people on this page are here because they are satisfied users of the free trial and are seriously considering giving me money, the Free Trial and Printable Bingo Cards buttons capture almost as many clicks as any other element on the page.

I love giving users free things that make them happy, but there is a time and place for it, and that time and place is not right in the middle of me asking them for money.  So I eliminated the distracting free options (and, while I was at it, the redundant purchasing option):

(You’ll note, by the way, that a lot of online retailers take a weedwacker to their entire navigation system when you’re getting into the purchase funnel.  Check out how much cruft Amazon cuts out next time you checkout there.)

Don’t Violate User Expectations

As an engineer I love elegance… probably to a fault.  For example, I always wanted to have exactly the same top-level navigation on all my pages.  This resulted in having a button to the home page actually on the home page.  OK, perhaps that wouldn’t be the worst thing in the world — except in a fit of stupidity way back in 2006 I titled that button “Information”, and despite four people telling me “You know, people seeing a button titled Information will click it thinking that it offers Information and will get upset when it just causes their screen to blink”, I never got around to changing that.

Sell What You Sell

Recently I released an online version of Bingo Card Creator, which I strongly hope will increase my sales substantially by decreasing the funnel dropout associated with downloading and installing BCC.  However, my site is still largely written to promote the downloadable version… to an almost painful degree sometimes.  For example, if you were to click on the purchasing link from within the upsell in the free trial of the online version, you’d find:

(Incidentally, that phrasing used to be “Purchase a single copy for only $24.95″.  I changed it at the suggestion of Aaron Wall, to emphasize the benefit — you get what you want instantly — over the action.  I think that sentence has been worth over a thousand bucks.)

However, when you’re selling something which is specifically designed to avoid the hassles associated with being downloaded, offering instant download is perhaps not the best idea!  So I rewrote it again to be a bit more neutral among my products:

If I had an absolutely infinite development budget I’d code up one version of the site to only sell the online version, one to sell both, and one to sell only the downloadable version, and then start split testing like a madman.  However, that is just not in the cards in the near future.  If I have some time later I’ll consider rewriting this page for people who are logged into the online version, though.

Optimizing Offsite Payment Processors

If you’re a member of SEOBook and have not yet read leeds’ post “Great conversion tactic for you”, do so now and implement the suggestion it makes immediately. (He asked me not to repeat the advice publicly.  I’m going to respect his wishes on that one.)

However, it did get the creative juices flowing:

Usual Disclaimer

I have confidence that the above examples are good ideas but confidence loses to evidence every day and twice on Sunday.  Conversion optimization is a science, not black magic: test, test, and test again to see what works in your particular market and circumstances.

Disclaimer: I am a moderator at SEOBook, but am not compensated for plugging it.  That said, it costs about $100 a month and I made that back on the first bit of advice I got.  It gets my two thumbs up.  CrazyEgg would require minimally an extra seven thumbs to express how awesome it is for visualizing user behavior — see the above heat maps.

If you found this post interesting, you may like my other posts about web design, conversion optimization, and the like.  (I don’t mean design in the sense of pretty things: I have all the artistic skill of a blind mole rat.)  Also, try searching the blog for “conversion rate” and the like, there have probably been a few posts which escaped my uneven categorization efforts.

Comments Off