initial commit of rewrite using App::Cmd