simplified code
Adds sphincter timeout and unknown state