assume failed state for simplicity (we can fail in more ways than we can succeed)