- Tab: refactor, move viewport state to a separate class (Viewport) and keep a list of viewports in Tab.