validation flow