add array_args
prod and contract