So, here the thing: everything is related to the concrete implementation of the "view" – aka, DOM in our case – should be in the `sidebar/utils` module – in the button stuff, I just called it `button/view`.

You have to think about it as MVC / MVP: so the `ui/sidebar` is the Controller / Presenter, where we put the logic, the behavior of the component, that is agnostic of the view's concrete implementation; where the `ui/sidebar/utils` – or `ui/sidebar/view` if you want to rename it – takes care of that.

To give a concrete example, the `panel` has a method `resize`, that resizes the panel (of course): in `panel.js` the method just validate the input, update the model, and then call the `domPanel.resize` (`domPanel` is `panel/utils`) that takes care of the actual view resize.

This is why also I said that `makeID` shouldn't be exposed: all the work that actually need to have access to the concrete DOM node, and therefore the real ID, not the one passed to the high level API, should be in the `sidebar/utils`.