update for more optional args.