handles optional camera as expected as suggested by @DaveVoyles