this wouldn't work when both `allow_blank` and `min_length` are set;
you should handle it somehow, say add an assertion in `__init__`