Abstracted different window classes into Window enum.
Window class is now known as AbstractWindow.
Some visibility modifications.
Other minor changes, no change in functionality.