_show, _hide, _toggle and subjecr aren't used locally to there is no reason to create these bindings. 

```js

return {
  show: function() ...
  hide: function() ...
  toggle: function() ...
  get isShowing() {...}
};
```

...Should be sufficient.