Many camera improvements. Needs tests.