added camera work
improved the camera interface