created separate PerceptualLook class for managing camera control