move loadedviewport into its own class, it's gonna get more functionality