basic implementation for the viewport (issue #8)