Toss @goodchar @badchar: Crawl has a better implementation built-in.