Pure OO, except for the script invoking the controller PM. Since @ARGV is global, it is available to all PMs, but better design dictates not referencing it within deeper OO code. One PM has a filehandle read, but can this be shifting it just by being included in a "use"?