Viewport now changes when you push against the boundaries

fixes #2
fixes #6