improve camera functions