camera management shifted to subclass