make cli a package
use flag.Args() to parse arguments
parse arguments for updates as well
add support for arrays and maps