begin to implement --viewport option, by adding Camera class + children