swap 'valid' event for 'update' and clarify error reporting