I'm ok with doing a nesting like:

```
if s.state != Stopped {
    if s.state != Initialized {
        return fmt.Errorf("raft.Server: Server already running[%v]", s.state)
    }
}

if err := s.Init(); err != nil {
    return err
}
```

It's mostly the `else` that I don't like. The error handling should be handled first and let the program continue on outside of a block after that.