Camera support

This is coming dangerously close to spaghetti code.