Created a fully documented Viewport object, further structural changes