Just noticing - this pattern of setting event to do validation seems quite common but quite painfully verbose.