better cli pattern