This time, our algorithm attempt is a bit cleaner.
Removed useless methods from camera.
Renamed interface.