I'd be happier if this was a bunch of classmethods, instead.