Changed the initial version to use Viewport for better resizing.