moved Camera struct to its own module to potentially be used elsewhere