Support better program args model and dir-2-dir diff