validation listener