I was looking at the lookup() method, when I realized that it was really a constructor in disguise. So I set out to make it a @classmethod on Shortener. But then I realized that not only was it a constructor, it was *THE* constructor. Like, the only one that anybody would ever care about. So I rewrote Shortener.__init__ to do what lookup() was doing, and in the process I made NullShortener subclass irrelevant, so I removed that.