You don't have to require the `button/view`, it has to be used only internally from `button`. Here the thing: if you call `setChecked` you're changing the `checked` status of the "view", but you're not modifying the `checked` status of the "model", and therefore you will have discrepancy, where the button "thinks" is not checked, but the node *is* checked.

Ideally, you should just use the `button.state` method. However, because it's a high level API method, you have to pass an SDK Tab or SDK Window, and because [bug 695143](https://bugzilla.mozilla.org/show_bug.cgi?id=695143) is not solved yet, we don't have an "official" way to convert a Chrome Window to SDK ones. In order to avoid to you to require `BrowserWindow` and do some hacky thing, I temporary exposed `setStateFor`, that accepts low level window from `state`.

So instead of the current line 30, you will have:
```js
const { setStateFor } = require('./state');
```