promises for validation