add camera implementation