* We don't use lit html logic, no event binding, no nothing, but only use static`` here to handle dom operations ourselves * We try to have separated concerns in different classes * We try to have clean concise and managable code * lets log whats happening, so if something goes wrong, we understand whats happening. * Read https://developer.mozilla.org/en-US/docs/Web/API/Selection/getComposedRanges