Safely fails if secret is changed. Added requirements.