initial rewrite to make the camera component work again