if I was being *really* picky I'd say do the case as a multimethod