Added v2 (more comments, less clutter, and camera object).