more robust callback validation