I had it in __init__ at one point but it felt weird because I had to call `is_bound` and `is_valid` to make it run validation on initialization. I admit though that this isn't the best place for it either.