@xiangli-cmu I think the `etcdStore` singleton is messy. A better approach might be to attach the store as the `server.Context`:

```
func (c *CreateCommand) Apply(server *raft.Server) (interface{}, error) {
    s := server.Context().(*store.Store)
    ...
}
```