On the show method is understandable that if the element is not a child of the widget, it has to add it.
But on the hide method, if the element is actually a child of the widget, it's really needed to remove it from the DOM? Maybe the child has to be removed only if it has been added on the show method?
or maybe hide method doesn't have to remove the element ?